假设我有这个模型:
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()
现在我想一个任务可能与另一个任务有关。所以我想这样做:
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 属性设为字符串:
class Task(models.Model):
title = models.CharField()
relates_to = ForeignKey(to='Task')
深入地讲,您还可以使用点符号交叉引用应用程序的模型,例如
class Task(models.Model):
title = models.CharField()
relates_to = ForeignKey(to='<app_name>.Task') # e.g. 'auth.User'