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 ответ:
related_name гарантирует, что поля не конфликтуют друг с другом, но у вас есть две модели, каждая из которых имеет оба этих поля. Вам нужно поставить имя конкретной модели в каждом из них, что вы можете сделать с некоторыми специальными замена строк:
create_user = models.ForeignKey(User, related_name='%(class)s_requests_created')