1. ホーム
  2. python

[解決済み] Django 管理画面でのデフォルトフィルタ

2022-12-28 01:10:44

質問

デフォルトのフィルター選択を「ALL」から変更するにはどうしたらよいでしょうか。私は、以下のような名前のフィールドを持っています。 status というフィールドがあり、3つの値を持っています。 activate , pendingrejected . を使用する場合 list_filter を使うとき、フィルターはデフォルトで 'All' に設定されていますが、デフォルトで pending に設定したいのです。

どうすれば解決しますか?

class MyModelAdmin(admin.ModelAdmin):   

    def changelist_view(self, request, extra_context=None):

        if not request.GET.has_key('decommissioned__exact'):

            q = request.GET.copy()
            q['decommissioned__exact'] = 'N'
            request.GET = q
            request.META['QUERY_STRING'] = request.GET.urlencode()
        return super(MyModelAdmin,self).changelist_view(request, extra_context=extra_context)