我对web应用程序和数据库的东西是一般的新东西,所以这可能是一个愚蠢的问题。我想创建一个模型(“CategoryModel”),该模型的字段指向模型的另一个实例(其父)的主ID。Django自引用外键
class CategoryModel(models.Model):
parentId = models.ForeignKey(CategoryModel)
我该怎么做?谢谢!
我对web应用程序和数据库的东西是一般的新东西,所以这可能是一个愚蠢的问题。我想创建一个模型(“CategoryModel”),该模型的字段指向模型的另一个实例(其父)的主ID。Django自引用外键
class CategoryModel(models.Model):
parentId = models.ForeignKey(CategoryModel)
我该怎么做?谢谢!
您可以将模型的名称作为字符串传递给ForeignKey,它会做正确的事情。
所以:
parentId = models.ForeignKey("CategoryModel")
或者你也可以使用字符串“自我”
parentId = models.ForeignKey("self")
您可以使用字符串“自我”,表示自参考。
class CategoryModel(models.Model):
parentId = models.ForeignKey('self')
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
或者只是使用'self' – 2013-03-08 02:27:38
前者似乎并不为CategoryModel类的工作还没有定义,但后者一样。 (Django 1.5.4)我做错了什么? – szabgab 2013-10-22 17:07:32
@szabgab一旦模型名称作为字符串传递,它就可以工作。 – Vaughan 2017-10-22 21:20:08