Django/python如何从对象列表中获取id的列表

Tim*_*Tim 7 python django list django-models python-3.x

如果我有一些查询获取的对象列表(在这种情况下是Django模型).

friends = Friend.objects.friends(user1)
Run Code Online (Sandbox Code Playgroud)

如何获取ID列表,以便我可以使用它来搜索其他模型,如下所示:

items = Item.objects.get(pk__in=friends_ids).order_by('date')
Run Code Online (Sandbox Code Playgroud)

我很确定lambda表达式应该能够做到但我无法弄清楚...

fal*_*tru 18

如果方法的返回值friendsQuerySet对象,则可以使用QuerySet.values_list方法:

friends_ids = friends.values_list('id', flat=True)
Run Code Online (Sandbox Code Playgroud)

如果它不是QuerySet对象,则可以使用列表推导(这个可以用于QuerySet和非QuerySet一个):

friends_ids = [friend.id for friend in friends]
Run Code Online (Sandbox Code Playgroud)