Python 如何进行嵌套Django选择?

Python 如何进行嵌套Django选择?,python,mysql,django,Python,Mysql,Django,我想选择所有拥有from\u friend=某个用户的to\u friends 然后,我想将另一个.objects.filter()中的内部过滤器传递给_friends。这样做吗 谢谢 我想选择所有给朋友,这些朋友从某个用户那里获得 您可以按如下方式获取此步骤的所有友谊对象: class Friendship(models.Model): from_friend = models.ForeignKey(User, related_name='friend_set') to_fri

我想选择所有拥有from\u friend=某个用户的to\u friends

然后,我想将另一个.objects.filter()中的内部过滤器传递给_friends。这样做吗

谢谢

我想
选择
所有
给朋友
,这些朋友从某个用户那里获得

您可以按如下方式获取此步骤的所有友谊对象:

class Friendship(models.Model):
    from_friend = models.ForeignKey(User, related_name='friend_set')
    to_friend = models.ForeignKey(User, related_name='to_friend_set')
然后,您可以使用查询集的值列表方法将所有to_friend字段放入一个平面列表中:

friendships = Friendship.objects.filter(from_friend=some_user)

此时,
friends
是一个ValuesListQuery对象,其工作方式与列表类似。您可以迭代好友并在其他filter()调用中使用这些值。

正如PCCARDONE所说,您可以获得如下相关用户:

friends = friendships.values_list("to_friend", flat=True)
但实际上,您可以将其直接传递到下一个查询:

friendships = Friendship.objects.filter(from_friend=some_user)

这似乎返回了所需的结果

second_select = Whatever.objects.filter(friend__in=friendships)
User.objects.filter(to_friend_set__from_friend=1)