猿问

如何在Django模板中连接字符串?

我想在Django模板标签中连接一个字符串,例如:


{% extend shop/shop_name/base.html %}

这shop_name是我的变量,我想将其与其余路径连接起来。


假设我有shop_name=example.com并且我想要结果扩展shop/example.com/base.html。


素胚勾勒不出你
浏览 2230回答 3
3回答

慕村225694

用于:{% with "shop/"|add:shop_name|add:"/base.html" as template %}{% include template %}{% endwith %}

HUH函数

不要add用于字符串,您应该定义一个自定义标签,如下所示:创建一个文件: <appname>\templatetags\<appname>_extras.pyfrom django import templateregister = template.Library()@register.filterdef addstr(arg1, arg2):&nbsp; &nbsp; """concatenate arg1 & arg2"""&nbsp; &nbsp; return str(arg1) + str(arg2)然后像@Steven所说的那样使用它{% with "shop/"|addstr:shop_name|addstr:"/base.html" as template %}&nbsp; &nbsp; {% include template %}{% endwith %}避免的原因 add根据文档该过滤器将首先尝试将两个值都强制转换为整数...可以强制转换为整数的字符串将被求和,而不是串联在一起 ...如果两个变量碰巧都是整数,则结果将是意外的。

30秒到达战场

我已经更改了文件夹层次结构/shop/shop_name/base.html 转到 /shop_name/shop/base.html然后下面将工作。{% extends shop_name|add:"/shop/base.html"%}&nbsp;现在,它能够扩展base.html页面。
随时随地看视频慕课网APP
我要回答