在Django中,你如何让模型参考自己?

use*_*652 31 django django-models

假设我们上课了Employee.我想要一个引用同一个类的不同实例的字段.

怎么写这个?以下代码怎么样?

ref_employee= models.ForeignKey('self',null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)

Jon*_*nan 57

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

要创建递归关系 - 与自身具有多对一关系的对象 - 使用 models.ForeignKey('self').

所以你做对了.通过运行它来确定代码是否能达到你想要的效果通常会更快:)

  • 谢谢回答.而且,仅仅因为某些东西似乎起作用并不意味着以这种方式做到这一点是个好主意.更好地找出正确的方法,并从别人的经验和错误中吸取教训. (2认同)

Str*_*ker 5

我相信您甚至可以排除应用程序名称,如下所示:

ref_employee= models.ForeignKey('Employee',null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)