Подтвердить что ты не робот

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 должна предотвращать столкновение, но я все равно получаю ту же ошибку. Может ли кто-нибудь подумать, почему это происходит? Спасибо!

4b9b3361

Ответ 1

Связанное имя будет гарантировать, что поля не противоречат друг другу, но у вас есть две модели, каждая из которых имеет оба этих поля. Вам нужно указать имя конкретной модели в каждой, что вы можете сделать с помощью специальной замены строк:

 create_user = models.ForeignKey(User, related_name='%(class)s_requests_created')