Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法知道URL调度器传递给查看的变量名?_Python_Django_Url_Dispatcher - Fatal编程技术网

Python 有没有办法知道URL调度器传递给查看的变量名?

Python 有没有办法知道URL调度器传递给查看的变量名?,python,django,url,dispatcher,Python,Django,Url,Dispatcher,我不知道这是否可能,但我会解释我想尝试什么 我制作了一个上下文处理器,可以加载一些用户信息。 我需要知道,在这个上下文处理器中,vars列表中是否有一个名为“group”的变量将传递给我的视图,如果是,我将加载更多的内容 处理器只接收一个请求对象,我认为仅使用它是不可能的 但是,使用REQUEST_PATH(来自REQUEST),我可以制作一些魔术(w/url.py),找到django选择的确切视图和变量。有没有一个简单的方法可以做到这一点(或者可能…一种方法?:D) ----解决方案----

我不知道这是否可能,但我会解释我想尝试什么

我制作了一个上下文处理器,可以加载一些用户信息。 我需要知道,在这个上下文处理器中,vars列表中是否有一个名为“group”的变量将传递给我的视图,如果是,我将加载更多的内容

处理器只接收一个请求对象,我认为仅使用它是不可能的

但是,使用REQUEST_PATH(来自REQUEST),我可以制作一些魔术(w/url.py),找到django选择的确切视图和变量。有没有一个简单的方法可以做到这一点(或者可能…一种方法?:D)

----解决方案----

解决方案(使用yasar11732的说法)如下:

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”,只需使用