0

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

但:

当我尝试使用这样定义的操作时:

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执行保存?

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

4

1 回答 1

1

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

或者,您可以在 admin 函数中调用 save(),但这样您就失去了 update() 方法的好处。

于 2014-03-26T20:21:37.280 回答