在不使用上下文处理器的情况下访问django 1.7模板中的URL参数

时间:2014-11-30 19:26:57

标签: python django python-2.7 django-templates django-views

http://www.example.com/soe/?param1=val1

这是当前网址,我想在django模板中访问变量{{param1}}。 (Django 1.7)

我知道已经有很多线程可用于此问题,但所有线程都使用ContextProcessor。(或render_to_response)

我只是使用return render(request, template, {})而不想使用ContextProcessors。

解决这个问题的一种方法是在渲染时传递param1的值,我的意思是

return render(request, template, {'param1': request.GET.get('param1')})

但我只是想知道我是否可以在模板中访问此变量?因为可能有10个参数。

2 个答案:

答案 0 :(得分:0)

您可以尝试在django模板中使用自定义标记。

答案 1 :(得分:0)

以下实际运作...

{{ request.GET.param1 }}

...只要您在设置文件中启用了默认django.template.context_processors.request即可。

DJANGO_CONTEXT_PROCESSORS = (
    # ...any other context processors you want to run
    'django.core.context_processors.request',
)

所有这一切都是将请求对象放在模板上下文中,然后您可以使用它来访问url参数。这正是您正在寻找的功能。请参阅here

您唯一的另一个选择是明确地将参数传递给模板,如您在问题中所述。