Django中的User和UserProfile对象

时间:2012-02-14 21:19:12

标签: django django-models django-users

我的UserProfile模型中的User相关字段有问题。

我在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对象的关系)将关系的每一方都返回为User或UserProfile?

编辑:

很抱歉我发现了我想要做的事情:

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

2 个答案:

答案 0 :(得分:1)

我相信这是选择与给定用户成为朋友的UserProfile个对象的方式:

UserProfile.objects.filter(friends__user = 234)

以下是同一组用户的User个对象:

User.objects.filter(userprofile__friends__user = 234)

答案 1 :(得分:1)

不仅有一种关系,所以只有你正在考虑的双方。用户与配置文件对象(FK)具有关系,而另一个用户具有许多用户对象(M2M)。