2012-08-02 12 views
15

Kiedy próbuję użyć staff_view, pojawia się przekierowanie w interfejsie uwierzytelniania administratora.Użyj staff_member_required decorator, ale bez przekierowania do interfejsu administratora?

from django.contrib.admin.views.decorators import staff_member_required 

    @staff_member_required 
    def staff_view(request..): 
     ... 

Jak mogę utworzyć niestandardowy login i nie przekierować go w domyślnym interfejsie logowania administratora?

+1

Będziesz musiał napisać własny dekorator :) –

+1

Właśnie napisałem mojego dekoratora: P – Kreshnik

Odpowiedz

24

Można użyć Django user_passes_test dekorator:

from django.contrib.auth.decorators import user_passes_test 

@user_passes_test(lambda u:u.is_staff, login_url=reverse_lazy('foo')) 
def staff_view(request..): 
    ... 
6

Warto podkreślić, że staff_member_required jest owinięcie wokół user_passes_test (patrz source code), a także przyjmuje parametr login_url, więc można zrobić:

@staff_member_required(login_url=example_url) 
def staff_view(request..): 
    ... 
Powiązane problemy