如何将文字字符串值传递给 django url 模板标签
Posted
技术标签:
【中文标题】如何将文字字符串值传递给 django url 模板标签【英文标题】:How to pass a literal string value to the django url template tag 【发布时间】:2012-02-02 08:03:18 【问题描述】:我有一个这样的 URL conf:
url(r'^value-toggle/(?P<profile_id>\d1,10)/(?P<on_or_off>on|off)/$',
'clipfo.profile.views.value_toggle',
name='value-toggle'),
在我的模板中,我正在尝试链接到它:
<a href="% url value-toggle profile_id=profile.id on_or_off='off' %">Turn off</a>.
查看包含 url 标签的页面时出现以下错误:
渲染时捕获 NoReverseMatch:Reverse for 带有参数“()”和关键字的“值切换” 参数 ''profile_id': 5, 'on_or_off': '### FIX ME - 模板错误 变量 ###'' 未找到。
请注意“### FIX ME - bad template variable ###”是我的TEMPLATE_STRING_IF_INVALID
值。
如何将文字“off”作为命名参数on_or_off
的值传递给url
django 模板标签?
【问题讨论】:
【参考方案1】:未来拯救了我!
刚刚打电话
% load url from future %
在我的模板的开头。
使用未来的 url 标签让我可以做我需要做的事情。我只需要将 url 的名称用单引号括起来,例如:
<a href="% url 'value-toggle' profile_id=profile.id on_or_off='off' %">Turn off</a>.
【讨论】:
嗯,这很奇怪。我认为 Django 1.5 中的url
模板标签(future
使用的语法)只允许使用上下文变量作为第一个参数,无论如何都要通过引用来避免。
从未来加载 url 对我不起作用...:/ 仍然出现“无反向”错误
注意引号。一种版本的 url 标记需要在页面名称周围加上引号,而另一种则不需要引号。我不记得我的头顶需要它们,但尝试两种方法,看看它是否能解决你的问题。以上是关于如何将文字字符串值传递给 django url 模板标签的主要内容,如果未能解决你的问题,请参考以下文章
Django,如何在提交表单时将 HTML 表单值传递给 URL?
使用 Django 和 Jquery 将选择选项值传递给命名的 url 模式
Urls.py 无法将#(pound) 字符传递给 Django 中的视图,