我需要在创建MyModel
对象时通过电子邮件通知用户。我需要让他们知道此对象的所有属性,包括ManyToManyFields 。
class MyModel(models.Model):
charfield = CharField(...)
manytomany = ManyToManyField('AnotherModel'....)
def to_email(self):
return self.charfield + '\n' + ','.join(self.manytomany.all())
def notify_users(self):
send_mail_to_all_users(message=self.to_email())
我尝试的第一件事是覆盖保存功能:
def save(self, **kwargs):
created = not bool(self.pk)
super(Dopyt, self).save(**kwargs)
if created:
self.notify_users()
哪个不起作用(manytomany似乎是空的QuerySet
)可能是因为交易尚未提交。
所以我尝试了同样结果的post_save
信号 - 空QuerySet
。
我无法使用m2mchanged
信号,因为:
你知道如何解决这个问题吗?有一些优雅的方式吗?