У меня есть две модели, которые идут что-то вроде:Джанго: два внешних ключей для пользователей в модели, получить тот, который не пользователь, который загрузил страницу
class UserProfile(models.Model):
account = models.ForeignKey(MyUser, related_name='profiles') # MyUser is my custom user model
display_name = models.CharField(max_length=30)
...
def get_all_contracts(self):
#returns all contracts associated with the profile
class Contract(models.Model):
...
employee = models.ForeignKey(UserProfile, related_name='employee_contracts')
employer = models.ForeignKey(UserProfile, related_name='employer_contracts')
...
Я хочу написать метод внутри модели контракта что возвращает UserProfile
экземпляра, который не один доступ мнения, так что если это работник доступа к приборной панели, этот метод будет возвращать работодатель и наоборот, так что я могу использовать его так:
{% for contract in user_profile.get_all_contracts %}
<h2>The other user is {{ contract.other_user.display_name }}</h2>
{% endfor %}
В этом примере other_user
был бы мной ThOD.
Есть ли способ сделать это? Я не могу понять, как определить из метода, какой профиль является тем, который загружал страницу.
любая помощь оценена :)
Это может быть проще реализовать как логику просмотра, так и фильтр шаблонов, поскольку самый простой способ получить запрос пользователя - 'request.user'. Таким образом, ваш 'other_user' будет пользователем двух, идентификатор которых не соответствует' request.user.id'. –
@ Two-BitAlchemist Как бы реализовать его ias view logic, если я хочу использовать его в цикле for и не знаю, сколько контрактов get_all_contracts вернется? Каждый контракт будет с другим человеком, поэтому я не знаю, как передать его в контексте – dietbacon