0

我正在使用 Django 1.5.1

我需要将视图名称作为变量传递给我的模板。

这是我观点的相关部分

return render(request, 'testcases/execute.html', {
        'table': table ,
        'submit_view': 'testcase_execute' ,
        "project": project})

这是我模板的相关部分

<form method="POST" action="{% url submit_view project.slug %}">
                {% render_table table %}
                <input type="submit"/>
</form>

如您所见,我正在尝试将视图名称('testcase_execute')作为变量(submit_view)传递给模板。

但是这样我得到了错误

'url' 需要一个非空的第一个参数。Django 1.5 中的语法发生了变化,请参阅文档。

我看不出有什么问题,根据这个 SO 线程(How to pass a variable to {% url %} tag in django?),如果我需要使用带有 url 标签的变量,我不应该加上引号。还存在其他 SO 线程,它们讲述了同样的事情。

我看到另一个 SO 线程(将变量 urlname 传递给 django 模板中的 url 标记),它指出不支持这种事情(使用带有 url 标记的变量),我应该为此使用 django-reversetags。

请对此有所了解-是否有官方(Django核心)方式来执行此操作,或者我应该使用 django-reversetags

4

2 回答 2

2

在 Django 1.3 之前,语法 like{% url myview %}被错误地解释 […]

[...] 您需要将标签更改{% url myview %}{% url "myview" %}. 如果您正在使用{% load url from future %},您可以简单地在 Django 1.5 下删除该行

https://docs.djangoproject.com/en/1.5/releases/1.5/#overview

于 2014-04-30T22:03:41.937 回答
1

{% url 'submit_view' project.slug %}我想这可以帮助你

于 2013-06-11T12:48:07.890 回答