在我的Django应用程序中,我有一个通讯模型。现在,我希望能够从Django Admin向发送时事通讯(甚至重新发送 it)。
我可以在Model.save()
方法上使用钩子来完成这个任务,但是还有另外一种方法不绑定到模型中吗?
谢谢
发布于 2009-04-06 14:30:14
行政行动允许您轻松地连接自定义操作,这些操作可以在管理员的列表页面中的选定项上执行。
发布于 2009-04-06 14:30:29
如果您是从admin执行此操作,则需要覆盖AdminModel ()方法,但它可以是.不需要是完整的模型保存。
然而,如果您正在发送大量电子邮件,更好的方法是安装django-mailer,将电子邮件放到队列中等待以后处理,然后为您提供一个新的管理命令: send_mail。
因此,一旦您准备发送新闻稿,您可以手动运行python manage.py send_mail
。任何有错误的电子邮件都将被移动到延迟队列中,您可以在那里尝试稍后再发送它们。
您可以通过从cron运行manage.py send_mail
来自动化这一点。
如果您真的想从管理站点中获得乐趣,请安装django-计时表并从那里设置您的send_mail计划。
发布于 2014-12-30 07:19:05
你可以试试这个https://www.youtube.com/watch?v=WvL1cR2MgLI
只要改变
def available (modeladmin,request,queryset):
queryset.update(status='ava')
def not_available (modeladmin,request,queryset):
queryset.update(status='not')
到某种程度上
def send(modeladmin, request, queryset):
for data in queryset:
subject=data.title
message=data.mesage
for d in Users.objects.filter(newsletter=True):
email=d.email
sendemail = EmailMessage(subject, message+unsubscribe, 'emailo@mdjangotutsme.com',
[email], [],
headers = {'Reply-To': 'emailo@mdjangotutsme.com'})
sendemail.content_subtype = "html"
sendemail.send()
https://stackoverflow.com/questions/723421
复制相似问题