django管理员操作与模型类中的保存

时间:2014-03-26 19:56:49

标签: django django-admin django-grappelli

我的模型中有一个布尔字段,表示已发送包含用户信息的电子邮件。 当我在管理员中更新它时,我使用模型中的save()方法,实际上正在发送电子邮件。这很有效。

BUT:

当我尝试使用我这样定义的行为时:

def send_this_email(modeladmin, request, queryset):
    queryset.update(mail_sent=True)
send_this_email.short_description = "Send email with access data"

并在管理员课程中:

actions = [send_this_email]

方法save()似乎没有被执行,也没有发送电子邮件。如何强制send_this_email执行保存?

如果重要的话我正在使用grappeli为我的django管理员。

1 个答案:

答案 0 :(得分:1)

Django的文档指定在查询集上调用update()不会调用save或调用任何pre-/ save-save挂钩。我建议您在需要发送电子邮件时明确调用该函数。

或者,你可以在admin函数中调用save(),但是你会失去update()方法的好处。