我想在Django模板标签中连接一个字符串,比如:
{% extend shop/shop_name/base.html %}
这里shop_name是我的变量,我想将它与rest of path连接起来。
假设我有shop_name=example.com,我想要结果扩展shop/example.com/base.html。
我想在Django模板标签中连接一个字符串,比如:
{% extend shop/shop_name/base.html %}
这里shop_name是我的变量,我想将它与rest of path连接起来。
假设我有shop_name=example.com,我想要结果扩展shop/example.com/base.html。
当前回答
在我的情况下,我需要concatenate发送一个参数连接到simple_tag的字符串,我不需要与,这节省了2行:
{% method firstParam "stringSecondParam="|add:valueSecondParam thirdParam as result %} 在这种情况下,问题的解决方案将是:"string="|add:object
其他回答
我已经更改了文件夹层次结构
/shop_name/shop/base.html
下面也可以。
{% extends shop_name|add:"/shop/base.html"%}
现在它能够扩展base.html页面。
我发现使用{% with %}标记非常麻烦。相反,我创建了下面的模板标记,它应该适用于字符串和整数。
from django import template
register = template.Library()
@register.filter
def concat_string(value_1, value_2):
return str(value_1) + str(value_2)
然后在模板的顶部使用以下方法加载模板标签:
{% load concat_string %}
你可以这样使用它:
<a href="{{ SOME_DETAIL_URL|concat_string:object.pk }}" target="_blank">123</a>
我个人觉得这样工作起来更简洁。
参考在Django模板中连接字符串:
对于早期版本的Django: {{"Mary有一个小"|stringformat:"s lamb。"}}
“玛丽有一只小羊羔。”
其他: {{"玛丽有一个小"|加:"羔羊。"}}
“玛丽有一只小羊羔。”
这个怎么样!我们有first_name和last_name,我们希望将它们分开显示为空格“”。
{% with first_name|add:' '|add:last_name as name %}
<h1>{{ name }}</h1>
{% endwith %}
我们实际做的是:first_name + ' ' + last_name
从文档中可以看出:
这个标签可以用两种方式使用:
{% extends "base.html" %}(带引号)使用字面值"base.html"作为要扩展的父模板的名称。 {% extends variable %}使用variable的值。如果变量的值是一个字符串,Django将使用该字符串作为父模板的名称。如果变量的值是一个Template对象,Django将使用该对象作为父模板。
看起来你不能用过滤器来操纵这个论证。在调用视图中,您必须实例化祖先模板,或者使用正确的路径创建一个字符串变量,并将其与上下文一起传递。