Могу ли я сделать foreignKey для той же модели в django?
Предположим, у меня есть эта модель :
class Task(models.Model):
title = models.CharField()
теперь я хотел бы, что задача может быть связана с другой задачей. Поэтому я хотел сделать так :
class Task(models.Model):
title = models.CharField()
relates_to = ForeignKey(Task)
однако у меня есть ошибка, которая гласит, что задача определена Примечание. Это "права" , если нет, то как я должен сделать что-то подобное ?
2 ответа:
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('Task')
в глубине вы также можете перекрестно ссылаться на модель приложения, используя точечную нотацию, например
class Task(models.Model): title = models.CharField() relates_to = ForeignKey('<app_name>.Task') # e.g. 'auth.User'