现在我有一个Django QuerySet,我想通过另一个QuerySet的结果来过滤它。现在我正在这样做(它工作):
field = 'content_object__pk'
values = other_queryset.values_list(field, flat=True)
objects = queryset.filter(pk__in=values)
其中字段是外键的名称,即queryset
中的pk
。ORM足够聪明,可以将上述内容作为一个查询来运行。
我试图将其简化为(即使用对象列表本身进行过滤,而不是显式地说pk
):
field = 'content_object'
objects = queryset & other_queryset.values_list(field, flat=True)
但这会产生以下错误:
AssertionError: Cannot combine queries on two different base models.
什么是正确的方法来进行这种类型的过滤?
2条答案
按热度按时间v2g6jxz61#
你可以做下一个:
结果将是模型中的对象,其中字段是other_query中模型的外键
j2cgzkjk2#
你可以在Django中链接查询。..