Python 有没有办法知道URL调度器传递给查看的变量名?
我不知道这是否可能,但我会解释我想尝试什么 我制作了一个上下文处理器,可以加载一些用户信息。 我需要知道,在这个上下文处理器中,vars列表中是否有一个名为“group”的变量将传递给我的视图,如果是,我将加载更多的内容 处理器只接收一个请求对象,我认为仅使用它是不可能的 但是,使用REQUEST_PATH(来自REQUEST),我可以制作一些魔术(w/url.py),找到django选择的确切视图和变量。有没有一个简单的方法可以做到这一点(或者可能…一种方法?:D) ----解决方案---- 解决方案(使用yasar11732的说法)如下:Python 有没有办法知道URL调度器传递给查看的变量名?,python,django,url,dispatcher,Python,Django,Url,Dispatcher,我不知道这是否可能,但我会解释我想尝试什么 我制作了一个上下文处理器,可以加载一些用户信息。 我需要知道,在这个上下文处理器中,vars列表中是否有一个名为“group”的变量将传递给我的视图,如果是,我将加载更多的内容 处理器只接收一个请求对象,我认为仅使用它是不可能的 但是,使用REQUEST_PATH(来自REQUEST),我可以制作一些魔术(w/url.py),找到django选择的确切视图和变量。有没有一个简单的方法可以做到这一点(或者可能…一种方法?:D) ----解决方案----
x = resolve(request.META["PATH_INFO"])
if 'group_name' in x.kwargs
do_domething()
def group_processor(request):
# ...
def some_view(request, user, group=None):
# ...
processors = [group_processor] if group else []
context = RequestContext(request, {}, processors)
return render_to_response("my_template.html", context_instance=context)
谢谢!:) 看:它正是你想要做的。请注意,如果此函数未找到匹配项,则会引发404异常,因此请准备好捕获它。您是否可以根据每个视图选择性地添加此异常?然后你可以这样做:
x = resolve(request.META["PATH_INFO"])
if 'group_name' in x.kwargs
do_domething()
def group_processor(request):
# ...
def some_view(request, user, group=None):
# ...
processors = [group_processor] if group else []
context = RequestContext(request, {}, processors)
return render_to_response("my_template.html", context_instance=context)
不要使用
has_键
;它已被弃用。如果x.kwargs中的“group_name”,只需使用