10

我发现自己经常做的一件事是将字符串文字作为参数传递给模板标签或函数;例如:

{% url my-url 'my_param' %}

不幸的是,django 模板引擎不允许你这样做。所以我发现自己在我的视图代码中经常这样做:

my_context_dict['MY_PARAM'] = 'my_param'

然后在我看来代码:

{% url my-url MY_PARAM %}

或者创建一系列我个人尽量避免的 URL 映射。

是否可以在 Django 模板中使用字符串文字?或者可能是更优雅的解决方案?我在这里或文档中没有看到任何内容。

4

3 回答 3

14

这感觉不对,但却是对的。

<a href="{% url someting "param1" "param2" %}">text</a>

嵌套""的 's 似乎不应该工作。他们是这样。Django{% %}材料只是简单地从 HTML 中提取出来,而不考虑周围的上下文。所以“重复”"的根本不是真正的重复。

于 2009-05-12T19:30:19.697 回答
12

使用双引号而不是单引号:

{% url my_view "my_param" %}
于 2009-05-12T19:29:11.323 回答
1

非常奇怪 - 我有一个 django 项目,它使用单引号来传递字符串值,它运行得很好。

<a href="{% url categories 'vendor' %}"</a>
<a href="{% url categories 'crew' %}"</a>

经过进一步调查,事实证明这在 django 1.5 中发生了变化。它现在甚至需要在 url 模式名称周围加上引号。

于 2013-03-13T05:53:49.037 回答