我可以在django中创build一个外键给同一个模型吗?

假设我有这个模型:

class Task(models.Model): title = models.CharField() 

现在我想说一个任务可能涉及到另一个任务。 所以我想这样做:

 class Task(models.Model): title = models.CharField() relates_to = ForeignKey(Task) 

但是我有一个错误,说明任务是音符定义。 这是“合法的”,如果不是,我该怎么做类似的呢?

 class Task(models.Model): title = models.CharField() relates_to = models.ForeignKey('self') 

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

是的,你可以做到这一点,使ForeignKey属性string:

 class Task(models.Model): title = models.CharField() relates_to = ForeignKey('Task') 

深入的,你也可以使用点符号来交叉引用应用程序的模型,例如

 class Task(models.Model): title = models.CharField() relates_to = ForeignKey('<app_name>.Task') # eg 'auth.User'