是否可以在SimpleListFilter中创建一个重定向。 我尝试用户django管理过滤器并重定向到网址。 有办法吗?
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,)
答案 0 :(得分: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>