通过管理站点修改Django CharField时发送电子邮件通知

Bel*_*dez 2 django django-signals django-admin

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

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

sun*_*nn0 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                
Run Code Online (Sandbox Code Playgroud)

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