class Friendship(models.Model):
from_friend = models.ForeignKey(User, related_name='friend_set')
to_friend = models.ForeignKey(User, related_name='to_friend_set')
我想选择所有来自from_friend =某个用户的to_friends。
然后,我想将to_friends传递给另一个.objects.filter()中的内部过滤器。这是这样做的吗?
谢谢!
答案 0 :(得分:3)
我想
SELECT
所有to_friends
from_friend
=某个用户。{/ p>
您可以像这样获得此步骤的所有友谊对象:
friendships = Friendship.objects.filter(from_friend=some_user)
然后,您可以使用查询集的values_list方法将所有to_friend字段放入平面列表中:
friends = friendships.values_list("to_friend", flat=True)
此时friends
是一个ValuesListQuery对象,就像列表一样工作。您可以迭代朋友并使用其他filter()调用中的值。
答案 1 :(得分:2)
正如pccardune所说,你会得到像这样的相关用户:
friendships = Friendship.objects.filter(from_friend=some_user)
但实际上你可以将它直接传递给你的下一个查询:
second_select = Whatever.objects.filter(friend__in=friendships)
答案 2 :(得分:2)
这似乎会返回所需的结果
User.objects.filter(to_friend_set__from_friend=1)