Django模板:将字符串变量与块中的字符串连接起来

Django模板:将字符串变量与块中的字符串连接起来,django,django-templates,Django,Django Templates,所以我想做一些类似的事情来保持干燥: {% with share_text=author.name + "released" + book.title + "via:myapp" %} do stuff with {{share_text}} {% endwith %} 然而,我遇到了Django模板错误,如“无法解析剩余项”和“使用接收到的无效运算符+”Django模板语言不是python(即使有时看起来有点类似),所以不要指望python代码在这里工作。使用模板过滤器/标记。在您的

所以我想做一些类似的事情来保持干燥:

{% with share_text=author.name + "released" + book.title + "via:myapp" %}
    do stuff with {{share_text}}
{% endwith %}

然而,我遇到了Django模板错误,如“无法解析剩余项”和“使用接收到的无效运算符
+

Django模板语言不是python(即使有时看起来有点类似),所以不要指望python代码在这里工作。使用模板过滤器/标记。在您的情况下,应该:

{% with share_text=author.name|add:"released"|add:book.title|add:"via:myapp" %}

但请仔细阅读文件中提到的限制和缺陷。否则,您可以编写自己的自定义筛选器或templatetag,这非常简单。

Django模板语言不是python(即使有时看起来有点类似),所以不要期望python代码在这里工作。使用模板过滤器/标记。在您的情况下,应该:

{% with share_text=author.name|add:"released"|add:book.title|add:"via:myapp" %}

但请仔细阅读文件中提到的限制和缺陷。否则,您可以编写自己的自定义筛选器或templatetag,这非常简单。

我们的想法不是在模板中这样做(Django模板故意比Python代码表达性差,以避免在模板中编写业务逻辑),而是在视图中,或使用
{{author.name}发布的{{book.title}
,等等@WillemVanOnsem虽然我完全同意在模板中避免使用业务代码的整个想法,但它不适用于这里-这显然是演示-有时你必须在模板中的不同位置重复使用相同格式的字符串,而不想重复自己。这个想法不是在模板中重复(Django模板故意比Python代码表达性差,以避免在模板中编写业务逻辑),但在视图中,或使用
{{author.name}}发布的{book.title}
,等等@WillemVanOnsem虽然我完全同意在模板中避免使用业务代码的整个想法,但它不适用于这里-这显然是演示-有时你不得不在模板中的不同位置重复使用相同的格式化字符串,而不想重复你自己。