我想在保存模型实例时发送电子邮件。要做到这一点,我会听取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的对象。
Heyulp!
答案 0 :(得分:2)
您很可能需要编写自己的信号才能发送电子邮件。
事件尽管您已实现尝试在保存对象时发送电子邮件,但这不是您想要的。您希望在保存对象时发送电子邮件,并在处理某些视图后添加一些subscribers
。即它的两步操作。