我想创建一个django admin的通知

时间:2015-06-15 13:42:22

标签: django python-2.7 django-admin

我想在数据库中添加类别时向django admin创建通知。然后,管理员应单击布尔字段并发布类别。

1 个答案:

答案 0 :(得分:2)

您可以覆盖分类模型上的save()方法 - 这是一些示例基本代码...

class Category(models.Model):

    def save(self, *args, **kwargs):
            if not self.pk:
                #no pk so it is new
                try:
                    send_mail('Subject here', 'Here is the message.', 'from@example.com',
    ['superuser@mail.com'], fail_silently=True)
                except:
                    # do something a bit more elaborate here, like logging
                    pass

            else:
                #do something if it is an update or...
                pass
            super(Category, self).save(*args, **kwargs)

走这条路,只记得导入send_mail功能......

from django.core.mail import send_mail

此外,您可以从数据库中动态获取超级用户 - 或者从设置文件导入 - 我将其硬编码为例。

编辑:请参阅Brandon关于post_save的评论。这可能是一个更好的解决方案,虽然稍微先进一点。如果您不想走这条路线,请将电子邮件逻辑包装在一个try / except块中,以避免像电子邮件这样的二次电子邮件失败而导致保存失败。