Как отфильтровать запрос по свойству профиля пользователя в Django? - PullRequest
9 голосов
/ 11 марта 2010

У меня есть две модели, Design и Profile. Профиль подключается в settings.py как профиль, который будет использоваться с моделью пользователя. Так что я могу получить к нему доступ через user.get_profile().

И каждый экземпляр Design имеет свойство author, которое является ForeignKey для пользователя.

Итак, когда я смотрю, я могу получить имя экрана (свойство профиля):

user.get_profile().screenname

Но каков синтаксис для ПОИСКА ПО ФИЛЬТРУ для этого свойства? Что у меня сейчас есть:

designs = Design.objects.filter(author__userprofile__screenname__icontains=w)

Это не работает. Мысли

1 Ответ

8 голосов
/ 11 марта 2010

Если ваш класс профиля называется Profile, и вы не настроили отношение User <-> Profile с использованием свойства related_name для ForeignKey, то вам не следует обращаться через:

designs = Design.objects.filter(author__user__profile__screenname__icontains=w)

Пользователь -> Профиль охватывает отношение, поэтому вам нужны дополнительные двойные подчеркивания.

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