我想创建用户的私人消息应用程序
消息模型如下所示:
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之一将引用不存在的用户。
如何应对这种情况?
答案 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。