【发布时间】:2014-12-13 10:31:40
【问题描述】:
现在我有一个 Django 查询集,我想通过另一个查询集的结果进行过滤。现在我正在这样做(并且有效):
field = 'content_object__pk'
values = other_queryset.values_list(field, flat=True)
objects = queryset.filter(pk__in=values)
其中字段是pk 中的外键名称queryset。 ORM 足够智能,可以运行上述查询。
我试图将其简化为(即使用对象列表本身进行过滤,而不必明确说出pk):
field = 'content_object'
objects = queryset & other_queryset.values_list(field, flat=True)
但这会产生以下错误:
AssertionError: Cannot combine queries on two different base models.
进行此类过滤的正确方法是什么?
【问题讨论】:
标签: django django-queryset django-orm