0

我想在保存模型实例时发送一封电子邮件。为此,我监听 post_save 信号:

#models.py
@receiver(post_save, sender=MyModel, dispatch_uid="something")
def send_email(sender, **kwargs):
    instance = kwargs['instance']
    email = ModelsEmailMessage(instance)  
    email.send()

在我看来,我处理表单并将订阅者附加到对象:

#views.py
object = form.save()
object.subscribers.add(*users)

我的问题是表单保存在添加用户之前触发了 post_save 信号。

但如果我这样做:

object = form.save(commit=False)

那么我不能将 m2m 实例添加到没有 id 的对象。

嘿嘿!

4

1 回答 1

2

您很可能必须编写自己的信号来发送电子邮件。

事件虽然您实现了在保存对象时尝试发送电子邮件,但这不是您想要的。您想在保存对象并subscribers在处理某些视图后添加一些对象时发送电子邮件。即它的两步操作。

于 2012-07-24T11:32:49.163 回答