我对webapps和数据库还不太熟悉,所以这可能是个愚蠢的问题。我想创建一个模型(“CategoryModel”),它的字段指向模型的另一个实例(其父实例)的主id。
class CategoryModel(models.Model): parentId = models.ForeignKey(CategoryModel)
您还可以设置null=True和blank=True
class CategoryModel(models.Model): parentId = models.ForeignKey("self", on_delete=models.CASCADE, null=True, blank=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/
您可以使用字符串“self”来指示自引用。
class CategoryModel(models.Model): parentId = models.ForeignKey('self')
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
您可以将模型的名称作为字符串传递给ForeignKey,它将做正确的事情。
所以:
parentId = models.ForeignKey("CategoryModel")
parentId = models.ForeignKey("self")