0

SimpleListFilterで1つのリダイレクトを作成することは可能ですか?ユーザーdjangoadminfilterを試し、URLにリダイレクトします。そうする方法はありますか?

class ListFilter(SimpleListFilter):
    title = "test"

    def lookup(self, request, model_admin):
        return (
            ('1t', 'First test'),
        )

    def queryset(self, request, queryset):
        if self.value() == '1t':
            redirect('/admin/test/3test/')

class TestAdmin(admin.ModelAdmin):
    list_filter(ListFilter,)
4

1 に答える 1

1

簡単な回答: いいえ。querysetメソッドは、http 応答ではなく、フィルター処理されたクエリセットを返す必要があります。

本当にフィルタ サイドバーにリンクを追加したい場合は、次のようにハックできます。

class ListFilter(SimpleListFilter):
    title = "test"
    template = 'admin_sidebar_links.html'

    def lookups(self, request, model_admin):
        return (,)

    def queryset(self, request, queryset):
        return queryset

次に、テンプレート ディレクトリに 'admin_sidebar_links.html' という名前の html ファイルを作成します。

<h3>Filter Title</h3>
<ul>
    <li><a href="/admin/test/3test/">Link</a></li>
</ul>
于 2013-03-11T20:04:39.720 に答える