我正在实施自己的通知系统,所以为此我有通知模型:
class Notification(models.Model):
user = models.ForeignKey(User, related_name='reciever')
sender = models.ForeignKey(User, related_name='sender')
content_type = models.CharField(max_length=30)
content = models.CharField(max_length=200)
我希望保存时,接收方资料中的unread_notifications布尔值会更改为true。
个人资料模型:
class UserProfile(models.Model):
...
unread_notifications = models.BooleanField(default=False)
这样做的方法是什么?无法在网上找到任何东西。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用@Gocht回答的信号或覆盖模型的save
方法。
class Notification(models.Model):
# fields
def save(self, *args, **kwargs):
super(Notification, self).save(*args, **kwargs) # Call the "real" save() method
UserProfile.objects.filter(id=self.user.user_profile_id).update(unread_notifications=True)
有关详细信息,请参阅overriding model methods。