2

我有一个通常为空的 CharField。mail_managers当字段设置为非空值时,我想向所有经理(使用 )发送电子邮件通知。对此字段的更改只能通过管理站点进行。

我认为这可能是我可以通过信号做的事情,但我没有在文档中看到适当的信号。有任何想法吗?

4

1 回答 1

6

如果您不想在再次更改字段时更新该字段,则需要向该字段添加一些历史记录,但只需向您的模型添加一个类似于应该工作的保存方法:

从 django.db 导入模型

class Test(models.Model):
    empty_field = models.CharField(max_length=20, blank=True)
    def save(self):
        if self.pk is not None:
            orig = Test.objects.get(pk=self.pk)
            if orig.empty_field != self.empty_field and len(self.empty_field) > 0:
                mail_managers ... 
        super(Test, self).save() # Call the "real" save() method                

请参阅 http://www.djangoproject.com/documentation/models/save_delete_hooks/Django:保存时,如何检查字段是否已更改?

于 2010-11-12T02:20:45.480 回答