{% %}
表示这是一个django模板分隔符。因此,在{% %}
内,空间应该无关紧要
现在在示例中:
<a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a>
这显示了预期的输出,而
<a href="{% url 'post_detail' pk = post.pk %}">{{ post.title }}</a>
显示错误 为什么这对空白很敏感?
答案 0 :(得分:3)
因为django模板是文本处理的,这是语法,你可以在bash
中尝试相同的事情,这是偏离主题的,但它的处理方式与语句对空格敏感的方式相同。
在 bash
中有效declare TEST=SOMETHING # is valid
在 bash
中无效declare TEST = SOMETHING # is invalid
(与django模板语言相同)
如果您的问题是Why this is sensitive to whitespace?
而答案是Because of syntax.
某些语言区分大小写,则有些语言不区分大小写,有些语言必须使用dollar($)为每个变量加前缀。这只是语法问题。一切都得到处理,如果你想让你的电脑了解发生了什么,那么它必须用正确的语法正式表达。
有Django文档:http://some.static.ab-xyz.com:8001
答案 1 :(得分:3)
Django模板标签允许你有位置和命名参数,所以,如果你有空格,它会假设pk是第一个参数,=秒,依此类推。
因此,如果您要传递命名参数,则必须使用=而不使用空格,如果使用位置参数,则不要使用=并仅用空格分隔它们。