0
我有点困惑。我想检查网站的当前网址是否位于我的urlpatters的特定子集中。 Django的哪个功能可以做到这一点?这是一个中间件,在移动到我的网站的特定部分之前请求其他信息。如何检查urlpatterns列表中的当前网址?
class AuthorityMiddleware(object):
def process_request(self, request):
current_url = request.path_info
if not request.user.is_anonymous() and current_url not in exclude_list:
if not request.session.get('authority'):
return get_the_authority(request)
应该如何排除列表中涉及到urls.py中定义的URL模式?
的['resolve'](https://docs.djangoproject.com/en/1.11/ref/urlresolvers/#resolve)方法采用一个URL路径并返回相应的视图,但目前还不清楚是否那就是你想要的。如果您提供了一些您想要排除的视图和网址格式的示例,那么您的问题就会更清晰。您确定要在中间件中进行此检查,而不是限制视图的装饰器吗? – Alasdair
我检查了解决方案,但我只想要在我的urlpattern中定义的一部分url,例如特定的应用程序,这是公开的,以及其他需要额外登录的应用程序。你是对的装饰。我一直在想错误的事情。早在我创建上述代码的时候,我一直认为中间件是唯一可以在显示视图之前将其重定向到另一个页面的地方。但事实并非如此。我能够用适当的装饰器解决我的问题。谢谢。 – Claude
我的排除列表有一个反向函数和url的列表,但它们会失败,需要更多参数的url,如标记化函数和需要密钥(密码重置等)的函数。 – Claude