Django用户的privete消息系统。用户删除处理

时间:2016-07-28 13:12:17

标签: django message

我想创建用户的私人消息应用程序 消息模型如下所示:

class Message(models.Model):
    title = models.CharField(max_length = 60)
    mssg_from = models.ForeignKey(User, related_name = 'message_from')
    mssg_to = models.ForeignKey(User, related_name = 'message_to')
    text = models.TextField()
    reciver_deleted = BooleanField( default = False )
    sender_deleted = BooleanField( default = False )
    delivery_date = models.DateTimeField(auto_now = True, auto_now_add = False)'message_from')

我想只在两个用户都删除它时才从数据库中删除邮件 我知道如何在视图中做到这一点(这就是为什么我创建了布尔字段)但是......
如果删除用户该怎么办?如何处理?
即使删除了secound用户,我希望消息仍然可供用户使用 但是,如果我删除用户并让消息仍然存在,那么ForeignKey之一将引用不存在的用户。
如何应对这种情况?

1 个答案:

答案 0 :(得分:0)

您可以将FK字段修改为:

    mssg_from = models.ForeignKey(User, related_name = 'message_from', null=True, on_delete=models.SET_NULL)
    mssg_to = models.ForeignKey(User, related_name = 'message_to', null=True, on_delete=models.SET_NULL)

然后当您删除其中一个用户时,相应的字段将设置为NULL。