比较Python / Django中的两个QuerySet

时间:2014-02-19 16:09:13

标签: python django django-queryset

我在Django中有两个QuerySet:

a = [<Character: Character object>, <Character: Character object>, <Character: Character object>]
b = [<Entity: Entity object>, <Entity: Entity object>, <Entity: Entity object>, <Entity: Entity object>, <Entity: Entity object>, <Entity: Entity object>]

我想避免多个for循环检查Character.someattr是否与Entity.someattr相同,并返回包含Character个对象的列表,那么最简单的是什么这样做的方法?

1 个答案:

答案 0 :(得分:3)

我认为最简单的方法是过滤查询集。这种方式可能包含其他查询,但速度必须快得多,尤其是对于大数据。

attrs_list = Entity.objects.filter(**filters).distinct().values_list('someattr', flat=True)
a = Character.objects.filter(someotherattr__in=attrs_list)