Python 如何进行嵌套Django选择?
我想选择所有拥有from\u friend=某个用户的to\u friends 然后,我想将另一个.objects.filter()中的内部过滤器传递给_friends。这样做吗 谢谢 我想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
选择所有给朋友,这些朋友从某个用户那里获得
您可以按如下方式获取此步骤的所有友谊对象:
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)