django:URL标记->如何使用变量作为url_name?

时间:2018-09-12 08:01:55

标签: django

我有一个django视图,其中声明了一个目标变量:

target  = "name_of_next_view_to_call"
return render(request, template, locals() )

我想在模板中使用此目标变量,我尝试了以下操作:

<form action="{% url '{{target}}' %}" method="post">

这给我一个错误:

Reverse for '{{target}}' not found. '{{target}}' is not a valid view function or pattern name.

如何使用“目标”变量的值作为要构造的url的名称? 通过doc,我知道应该有可能:

  

第一个参数是URL模式名称。可以是带引号的文字   或任何其他上下文变量。

1 个答案:

答案 0 :(得分:0)

在模板标签中,您不需要标记上下文变量。通常无需大括号即可识别它们:

<form action="{% url target %}" method="post">

应该可以正常工作。就像您可能以类似方式使用其他标签一样:

{% if target %}
# or
{% for obj in object_list %}

尽管在文档variablestags的文档中列出了一些示例,但这里并没有明确指出这一点。