2012-02-14 2 views
1

У меня возникли проблемы с соответствующим полем для пользователя в моей модели UserProfile.Объекты User и UserProfile в Django

У меня есть это поле в моей UserProfile модели:

friends = models.ManyToManyField(User, null=True) 

Когда я звоню

User.objects.get(pk=234).get_profile().friends.all() 

Я получаю множество друзей как объекты пользователя

Когда я звоню

User.objects.get(pk=234).friends_set.all() 

Я получаю список объектов UserProfile.

Есть ли способ (без изменения отношения к объекту UserProfile), чтобы получить каждую сторону отношения, возвращенную как пользователь или пользовательский файл?

EDIT:

Извините за путаницу я понял, что я пытался сделать:

user = User.objects.get(pk=234) 
User.objects.filter(userprofile__friends=user).all() 
+0

Я не понимаю ваш вопрос. Вам нужны объекты User или UserProfiles? – Sid

+0

Я хочу либо - пока я могу получить то же самое для каждой стороны отношений. Сейчас я могу получить только UserProfiles для одной стороны и пользователя для другой стороны. –

ответ

1

Я считаю, что это путь, чтобы выбрать UserProfile объекты, которые дружат с заданным пользователем :

UserProfile.objects.filter(friends__user = 234) 

А вот User объекты для того же набора пользователей:

User.objects.filter(userprofile__friends__user = 234) 
+0

Извините, у меня была опечатка в моем вопросе - я получаю одну сторону отношений как объекты пользователя, а другую как UserProfile. Как мне получить обе стороны отношений как UserProfile? –

1

Существует не только одно отношение, поэтому есть более чем две стороны, которые вы рассматриваете. Пользователь имеет отношение к объекту профиля (FK), а другой - к многочисленным пользовательским объектам (M2M).

Смежные вопросы