django admin でチェンジリスト ビュー クエリセットを取得する必要があります。現在、4 つの余分なクエリを作成するこのモンキー パッチがあるので、より良い解決策を探しています。
私のポイントは、クエリの作成から取得した django admin change_list.html テンプレートにいくつかの追加の値を渡したいということです。これらのクエリには、要求フィルターが適用された django 管理変更リスト ビューで使用されるクエリセットが必要です。これは、フィルター処理、並べ替えなどで表示されるデータと同じです。このデータからグラフを作成したいと思います。
あなたは私を理解していますか?ありがとう
#admin.py
from django.contrib.admin.views.main import ChangeList
class TicketAdmin(admin.ModelAdmin):
def changelist_view(self, request, extra_context=None):
cl = ChangeList(request,
self.model,
self.list_display,
self.list_display_links,
self.list_filter,
self.date_hierarchy,
self.search_fields,
self.list_select_related,
self.list_per_page,
self.list_max_show_all,
self.list_editable,
self) # 3 extra queries
filtered_query_set = cl.get_query_set(request) # 1 extra query
currencies_count = filtered_query_set.values('bookmaker__currency').distinct().count()
extra_context = {
'currencies_count': currencies_count,
}
return super(TicketAdmin, self).changelist_view(request, extra_context=extra_context)