現在我有一個Django查詢集,我想通過另一個查詢集的結果進行過濾。現在我這樣做的(和它的作品):使用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.
做這種類型的過濾的正確方法是什麼?
我明白了,但在這種情況下......中會發生什麼?你可以把'.filer(in = ...)'(我的想法是否定的)。 – 2014-10-17 19:34:23
是的,你可以把Person.objects.filter(name =「michael」).filter(lastname =「riemann」) – michaelwayman 2014-10-18 05:22:04
這些都是帶有字符串過濾器的例子。它不回答如何使用查詢集。 – 2014-10-18 14:36:07