如何将变量传递给django中的{%url%}标记?

Kor*_*oly 4 python django url templates

我有2个视图:a和b它们都渲染到一个模板T.还有a_2和b_2个视图.并且T模板应该为a_2和b_2视图生成网址.

但是我不能使用{%url%}因为我不能将url名称作为参数传递.

我无法在视图中生成整个URL,因为我应该多次执行它(一个在表中的一行 - 所以它可能是链接的hundreeds)

我不想写2个完全相同的模板.所以问题是 - 如何避免这种情况?

Ted*_*Ted 13

这在django 1.5中得到修复.

在1.5之前的版本中,您需要使用

{% extends 'base.html' %}

{% load url from future %}

{% url 'name_as_a_string' %}
{% url name_stored_in_variable %}
Run Code Online (Sandbox Code Playgroud)

来自https://docs.djangoproject.com/en/dev/releases/1.5/

一个值得注意的弃用功能是转向"新式"url标签.在Django 1.3之前,{%url myview%}之类的语法被错误地解释(Django将"myview"视为视图的文字名称,而不是名为myview的模板变量).Django 1.3及以上版本引入了{%load url from future%}语法,以引入已将myview视为变量的更正行为.