Django的mysql数据库问题:同一个模型(同一张表)中的不同记录也是可以相互关联的【使用“自引用关系”】
在Django中,一个模型(Model)可以有一个指向自身的ForeignKey字段,这样就可以创建出表中不同记录之间的关联。这种情况下,不是说一张表内部自关联,而是说一张表中的不同记录可以互相关联。
例如,如果你有一个Comment模型,它代表一个帖子的评论,而这些评论可以互相回复,形成父子评论关系,你可以这样定义模型:
from django.db import models
class Comment(models.Model):
content = models.TextField()
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.content
在这个例子中,parent
字段是一个ForeignKey指向同一个模型(self
),表示这个评论的父评论。如果这个字段是null=True
,表示可以没有父评论,这时这个字段为空;如果设置了blank=True
,表示在表单中创建记录时这个字段可以不填。
这样,一个模型的不同记录之间就可以相互关联起来,形成层级或树状结构。
评论已关闭