Недавно я получил столкновение ForeignKey в моей модели Django. Мне нужно иметь два внешних ключа (owner, assign_to), в конечном счете указывающие на одну и ту же модель (пользователь).
Из того, что я понимаю, мне нужен аргумент related_name
для решения этой проблемы. Поэтому я сделал это:
assigned_to = models.ForeignKey(TaskUser, blank=True, null=True, related_name='user_assignment')
и
owner = models.ForeignKey(TaskUser, related_name="user_ownership"
Но я все еще получаю сообщение об ошибке:
tasks.task: Accessor for field 'owner' clashes with related field 'TaskUser.user
_ownership'. Add a related_name argument to the definition for 'owner'.
tasks.task: Reverse query name for field 'owner' clashes with related field 'TaskUser.user_ownership'. Add a related_name argument to the definition for 'owner'.
Почему я все еще получаю эту ошибку?
Существует один catch, owner
находится в суперклассе (BaseWidget), а assigned_to
- в подклассе (Task). Существуют ли проблемы с использованием related_name
в отношении наследования? Нужно ли просто переопределять наследование владельца и переопределять related_name
в подклассе? Буду признателен за любую помощь!