5

Django admin では、変更リストに表示される行を制限するフィルターを設定できます。クエリ文字列で定義されたフィルタが設定された QuerySet インスタンスを取得するにはどうすればよいですか? たとえば、?start_date_gte=2009-11-06 を渡すと、Django 管理者は qs.filter(start_date__gte...) をどこかに適用します。このような QuerySet にアクセスするにはどうすればよいですか?

これらの GET パラメータを受け取り、それに応じて QuerySet を filter() するコードを書き直したくないのは明らかなので、これが必要です。

4

2 に答える 2

9

面白そう。ただし、Admin 内でその QuerySet を使用することについて話していました。答えが見つかりました。以下を参照してください。

class MyAdmin(admin.ModelAdmin):
  def changelist_view(self, request, extra_context=None):
    from django.contrib.admin.views.main import ChangeList
    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_editable, self)
    # getting query set with same filters like current change list
    filtered_query_set = cl.get_query_set()
于 2009-11-11T11:33:55.323 に答える
1

django-filterを見てください。

于 2009-11-06T13:16:09.547 に答える