Django在调用视图方法之前添加访问URL的权限
在上面的URL配置中,我只允许路由器A到特定的用户集,而剩余的B、C和D到特定的用户集。如何使用URL配置来实现这一点Django在调用视图方法之前添加访问URL的权限,django,python-2.7,Django,Python 2.7,在上面的URL配置中,我只允许路由器A到特定的用户集,而剩余的B、C和D到特定的用户集。如何使用URL配置来实现这一点 请注意,我的应用程序已经有近80个URL,现在我无法编辑和添加每个方法的权限。所以我要做的是,一旦URL被调用,它就需要通过权限,然后才能真正调用views方法。请让我知道如何才能做到这一点。您可以创建如下custum decorator: urlpatterns = patterns('', url(r'^A/$', 'django.contrib.auth.views.lo
请注意,我的应用程序已经有近80个URL,现在我无法编辑和添加每个方法的权限。所以我要做的是,一旦URL被调用,它就需要通过权限,然后才能真正调用views方法。请让我知道如何才能做到这一点。您可以创建如下custum decorator:
urlpatterns = patterns('',
url(r'^A/$', 'django.contrib.auth.views.login'),
url(r'^B/$', logout_page),
url(r'^C/$', c_method),
url(r'^D/$', D_method),)
并在这样的函数中使用它
from django.core.exceptions import PermissionDenied
def your_decorator_name(function):
def wrap(request, *args, **kwargs):
your condition
if your conditioon is true == True:
return function(request, *args, **kwargs)
else:
raise PermissionDenied
wrap.__doc__ = function.__doc__
wrap.__name__ = function.__name__
return wrap
这一点也不清楚。你说的是什么“路由器”?@DanielRoseman我的意思是说,你已经创建了自定义装饰器,并在函数顶部使用它,在自定义装饰器中,你必须定义你的条件,在该条件下,你要引发权限被拒绝错误。@AbiWaqas一个例子就是在回答等待中发布
from ur_file_location import your_decorator_name
@your_decorator_name
def permision_demo(request):
return 'hola'