2017-09-05 21 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 
相关问题