繁体   English   中英

Django自引用外键

[英]Django self-referential foreign key

我对 webapps 和数据库的东西一般都是新手,所以这可能是一个愚蠢的问题。 我想制作一个模型(“CategoryModel”),其字段指向模型的另一个实例(其父级)的主 ID。

class CategoryModel(models.Model):
    parent = models.ForeignKey(CategoryModel)

我该怎么做呢? 谢谢!

您可以将模型的名称作为字符串传递给 ForeignKey,它会做正确的事情。

所以:

parent = models.ForeignKey("CategoryModel")

或者您可以使用字符串“self”

parent = models.ForeignKey("self")

您可以使用字符串“self”来表示自引用。

class CategoryModel(models.Model):
    parent = models.ForeignKey('self')

https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

您还可以设置null=Trueblank=True

class CategoryModel(models.Model):
    parent = models.ForeignKey("self", on_delete=models.CASCADE, null=True, blank=True)

null=True ,允许在数据库中
blank=True ,允许表单验证

https://books.agiliq.com/projects/django-orm-cookbook/en/latest/self_fk.html

class Employee(models.Model):
    manager = models.ForeignKey('self', on_delete=models.CASCADE)

或者

class Employee(models.Model):
    manager = models.ForeignKey("app.Employee", on_delete=models.CASCADE)

https://stackabuse.com/recursive-model-relationships-in-django/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM