2012-12-19 9 views
7

Na przykład, mam widok klasę opartą który umożliwia zarówno GET i metody POST, jak poniżej,Jak ozdobić inną metodę http zdaniem opartym pojedyncza klasa A

class ViewOne(View): 
    def post(self, request, *args, **kwargs): 
     ... 
    def get(self, request, *args, **kwargs): 
     ... 
    @method_decorator(login_required) 
    def dispatch(self, *args, **kwargs): 
     return super(ViewOne, self).dispatch(*args, **kwargs) 

Teraz zarówno GET i POST są login_required . Ale co, jeśli chcę, aby tylko POST wymagało zalogowania?

Odpowiedz

4

Hm ... Czy to nie działa?

class ViewOne(View): 
    @method_decorator(login_required) 
    def post(self, request, *args, **kwargs): 
     ... 
    def get(self, request, *args, **kwargs): 
     ...  
+0

Hm, to działa! Dzięki ~ – yejinxin

1

Dlaczego nie stworzyć dwie klasy, należy również django-braces;)

class ViewOne(View): 
    def get(self, request, *args, **kwargs): 
    ... 

class ViewTwo(LoginRequiredMixin, ViewOne): 
    def post(self, request, *args, **kwargs): 
    ... 
Powiązane problemy