假设我有这个模型:
class Task(models.Model):
title = models.CharField()
现在我希望任务可能与另一项任务有关。所以我想这样做:
class Task(models.Model):
title = models.CharField()
relates_to = ForeignKey(Task)
但是我有一个错误,指出Task是注释定义的。 这是“合法的”,如果不是,我该怎么办呢?
答案 0 :(得分:108)
class Task(models.Model):
title = models.CharField()
relates_to = models.ForeignKey('self')
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
答案 1 :(得分:15)
是的,你可以这样做,将ForeignKey属性设为字符串:
class Task(models.Model):
title = models.CharField()
relates_to = ForeignKey('Task')
从深度上讲,您还可以使用点符号交叉引用应用的模型,例如
class Task(models.Model):
title = models.CharField()
relates_to = ForeignKey('<app_name>.Task') # e.g. 'auth.User'