我正在构建一个基于Web的应用程序,我需要在更新或修改表中的某些值后,通过E-mail
向注册用户发送通知。
我有model.py
:
class ProileComment(models.Model):
comment = models.TextField()
user = models.CharField(max_length=30, null=False, blank=True)
timestamp = models.DateTimeField(null=False, blank=True)
views.py
def send_email(request):
##
根据我的问题,如果ProfileComment
模型将更新,那么它应该自动调用send_email
方法。这样用户就可以获得有关数据库更改的通知。我该怎么办?
答案 0 :(得分:1)
你可以使用django signals !!
https://docs.djangoproject.com/en/dev/ref/signals/
它们允许您注册信号监听器。也许pre_save信号最能满足您的需求?每当应用程序中的任何地方保存某些内容时,您的信号就会被调用,您可以根据模型或您需要的其他条件做出决定。
或者,如果您只想为该模型发送send_email,则可以覆盖save
方法!
class ProfileComment(models.Model):
def save(self, *args, **kwargs):
# send email?
super(ProfileComent, self, *args, **kwargs) # make sure to call parent!