2017-09-05 24 views
0

我在urls.py中添加了我的裝飾器(is_same_domain_authorized_user)。當我打電話給/登錄用戶/網址。它不會調用我的裝飾器(is_same_domain_authorized_user)。任何人都可以發現我的錯誤Django Rest Framework內部函數沒有在自定義裝飾器中調用

注:我應該從urls.py自稱裝飾(這是我的情況)

decorators.py

def is_same_domain_authorized_user(view_func): 
    def wrapper(request, *args, **kwargs): 
     import pdb;pdb.set_trace() 
     return is_same_domain_authorized_user 
    return wrapper 

urls.py

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^login-user/', is_same_domain_authorized_user(views.TokenView.as_view())) 
] 

謝謝

+0

已測試,它的做工精細 – Ykh

+0

對我來說,根本沒有在裝飾器中調用我的內部函數(包裝器)。同時它返回一個名爲:Forbidden的錯誤(CSRF cookie未設置):/ login-user/ – rakesh

+0

TokenView必須在您的代碼中請求auth perm,將其更改爲再試一次 – Ykh

回答

0
def is_same_domain_authorized_user(view_func): 
    **@wraps(view_func)** 
    def check_domain_permission(request): 
     import pdb;pdb.set_trace() 
     return view_func(request) 
    return check_domain_permission 

@wraps(view_func)其工作正常...

謝謝...

0

在上面補充一點:

from django.views.decorators.csrf import csrf_exempt 

您function.like這頂補充一點:通過添加

@csrf_exempt 
def is_same_domain_authorized_user(view_func): 
    def wrapper(request, *args, **kwargs): 
     import pdb;pdb.set_trace() 
     return is_same_domain_authorized_user 
    return wrapper 
相關問題