1

我的 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()
4

2 回答 2

1

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

于 2012-02-14T22:11:02.070 回答
1

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

UserProfile.objects.filter(friends__user = 234)

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

User.objects.filter(userprofile__friends__user = 234)
于 2012-02-14T21:33:53.667 回答