Django: доступ к одному-одному полю в шаблонах - PullRequest
1 голос
/ 07 декабря 2010

У меня есть модель UserProfile, содержащая OneToOneField класса Info:

class UserProfile(models.Model):
    user = models.OneToOneField(User, primary_key=True)
    info = models.OneToOneField(Info, null = True, blank= True)

в моем шаблоне у меня есть доступ к профилю с

{{user.get_profile}}

но как получить доступ Info? Я пытался

{{user.get_profile.info.photo.url}}

без успеха.

1 Ответ

6 голосов
/ 07 декабря 2010

Вы не можете этого сделать.

user.get_profile()

- это метод, который выполняется при обращении к нему как

{{user.get_profile}}

, а не при попытке доступа к другим атрибутам профиля, таким как {{user.get_profile.attr1}}

Обходным путем является отправка объекта профиля из представления.И если вы хотите иметь его во многих представлениях, вы должны сделать его TemplateContextProcessor .

. Существует также другой способ расширения модели User с помощью профиля атрибута, который является @propertyэто то же самое, что и get_profile, что вы можете сделать, как я описал ранее .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...