7

スライスされたクエリセットを連結する方法はありますか?その簡略化された例(この特定の例は1つのクエリで記述できることに気づきました):

>>> ...
>>> query_set_1 = Model.objects.filter(...)[:3]
>>> query_set_2 = Model.objects.filter(...)[5:]

>>> query_set_1 | query_set_2

うまくいかない、

>>> AssertionError: Cannot combine queries once a slice has been taken.

助言がありますか?ありがとう!

4

3 に答える 3

12

いいえ。ただしitertools.chain()、両方のクエリセットを順番に繰り返すことができます。

qiter = itertools.chain(query_set_1, query_set_2)
于 2012-09-18T23:07:13.877 に答える
7

union()を使用して、2つのスライスされたクエリセットを組み合わせることができます。このような:

query_set_1 = Model.objects.filter(...)[:3]
query_set_2 = Model.objects.filter(...)[5:]

queryset = query_set_1.union(query_set_2)
于 2019-02-01T05:24:35.880 に答える
0
merged_queryset = [x for x in queryset1] + [y for y in queryset2]
于 2015-09-12T01:38:00.637 に答える