2013-03-11 5 views
0

Можно ли создать одну переадресацию в SimpleListFilter. Я пробовал пользовательский фильтр администратора django и перенаправляю URL. Есть ли способ сделать это?Django admin redirect в SimpleListFilter

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,) 

ответ

1

Короткий ответ: Нет Метод queryset должен возвращать отфильтрованную 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 

Затем создайте файл HTML в каталоге шаблонов под названием «admin_sidebar_links.html», содержащий что-то вместе эти строки:

<h3>Filter Title</h3> 
<ul> 
    <li><a href="/admin/test/3test/">Link</a></li> 
</ul> 
+0

Возможно ли создать его так, чтобы вы могли изменить ссылку? – DarkAnthey

+0

Я нашел метод выбора (self, cl). Он решает все мои проблемы. Благодаря помощи. – DarkAnthey

Смежные вопросы