1
に注釈を付ける後の値のリストを取得する私はこのようなDjangoのコードを持っている:Djangoのクエリセット
max_id_qs = qs1.values('parent__id').\
annotate(max_id = Max('id'),).\
values_list('max_id', flat = True)
問題は、私はこのようなフィルタでmax_id_qs
を使用する場合:
rs = qs2.filter(id__in = max_id_qs)
クエリは、以下の構造のMySQLクエリに変換されます。
select ... from ... where ... and id in (select max(id) from ...)
tは言い換えれば
select ... from ... where ... and id in [2342, 233, 663, ...]
が、私は劇的に検索を遅くMySQLのクエリでサブクエリの代わりに、整数のリストを取得する必要があります。私が驚いたのは、Djangoのvalues_list
が値のリストを返すと思ったことです。
だから私は代わりにid in (select ... from...)
サブクエリ
可能な重複https://stackoverflow.com/questions/4424435/how-to-convert-a-django-queryset-to-a-list:それは単にリストに変換し評価するために、 –