我不知道这是否可行,但我会解释我想要的尝试!
我制作了一个Context Processor来加载一些用户信息。 我需要知道,在这个上下文处理器中,如果在vars列表中有一个名为“group”的变量将传递给我的视图,如果是,我将加载更多东西。
处理器只接收REQUEST对象,我认为这是不可能的。
但是,使用REQUEST_PATH(来自请求)我可以制作一些魔法(w / urls.py)并找到django选择的确切视图和变量。有没有一种简单的方法可以做到这一点(或者......可能......方式?:D)?
----解决方案----
解决方案(使用yasar11732所说的)是这样的:
x = resolve(request.META["PATH_INFO"])
if 'group_name' in x.kwargs
do_domething()
谢谢! :)
答案 0 :(得分:2)
请参阅:resolve()它完全符合您的要求。请注意,如果找不到匹配项,此函数会抛出404异常,因此请准备好捕获它。
答案 1 :(得分:0)
你能否有选择地在每个视图的基础上添加它?然后你可以做这样的事情:
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)