Django - 使用post_save网格锁的很多人

时间:2012-07-24 10:48:49

标签: django django-forms django-signals m2m

我想在保存模型实例时发送电子邮件。要做到这一点,我会听取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!

1 个答案:

答案 0 :(得分:2)

您很可能需要编写自己的信号才能发送电子邮件。

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