我的模型中有一个布尔字段,表示已发送包含用户信息的电子邮件。
当我在管理员中更新它时,我使用模型中的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管理员。
答案 0 :(得分:1)
Django的文档指定在查询集上调用update()不会调用save或调用任何pre-/ save-save挂钩。我建议您在需要发送电子邮件时明确调用该函数。
或者,你可以在admin函数中调用save(),但是你会失去update()方法的好处。