Django: обратные аксессоры для внешних ключей
У меня есть две модели Django, которые наследуются от базового класса:
- Request
- Inquiry
- Analysis
Запрос имеет два внешних ключа для встроенной модели пользователя.
create_user = models.ForeignKey(User, related_name='requests_created')
assign_user = models.ForeignKey(User, related_name='requests_assigned')
По какой-то причине я получаю сообщение об ошибке
Reverse accessor for 'Analysis.assign_user' clashes with reverse accessor for 'Inquiry.assign_user'.
Все, что я прочитал, говорит о том, что установка related_name
должна предотвращать столкновение, но я все равно получаю ту же ошибку. Может ли кто-нибудь подумать, почему это происходит? Спасибо!
Ответы
Ответ 1
Связанное имя будет гарантировать, что поля не противоречат друг другу, но у вас есть две модели, каждая из которых имеет оба этих поля. Вам нужно указать имя конкретной модели в каждой, что вы можете сделать с помощью специальной замены строк:
create_user = models.ForeignKey(User, related_name='%(class)s_requests_created')