Django自引用外键
我对网页应用和数据库的东西还不是很熟悉,所以这个问题可能有点傻。我想创建一个模型(叫做“CategoryModel”),里面有一个字段指向另一个模型实例的主ID(也就是它的父级)。
class CategoryModel(models.Model):
parent = models.ForeignKey(CategoryModel)
我该怎么做呢?谢谢!
4 个回答
22
你还需要设置 null=True
和 blank=True
class CategoryModel(models.Model):
parent = models.ForeignKey("self", on_delete=models.CASCADE, null=True, blank=True)
null=True
是为了让数据库可以接受空值
blank=True
是为了让表单验证时可以接受空值
80
你可以用字符串'self'来表示自我引用。
class CategoryModel(models.Model):
parent = models.ForeignKey('self')
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
370
你可以把模型的名字以字符串的形式传给ForeignKey,它会自动处理好相关的事情。
比如:
parent = models.ForeignKey("CategoryModel")
或者你也可以使用字符串“self”
parent = models.ForeignKey("self")