我可以在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'