2013-03-11 4 views
0

SimpleListFilter에서 리디렉션을 하나만 만들 수 있습니까? 사용자 django admin 필터를 시도하고 URL로 리디렉션합니다. 그렇게 할 방법이 있습니까?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 메서드는 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> 
+0

링크를 변경할 수 있도록 하나를 만들 수 있습니까? – DarkAnthey

+0

선택 사항 (self, cl) 메소드를 찾았습니다. 그것은 내 모든 문제를 해결합니다. 도움을 주셔서 감사합니다. – DarkAnthey