为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

素胚勾勒不出你 2019-11-25 10:41:23
我想在Django模板标签中连接一个字符串,例如:{% extend shop/shop_name/base.html %}这shop_name是我的变量,我想将其与其余路径连接起来。假设我有shop_name=example.com并且我想要结果扩展shop/example.com/base.html。
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

用于:


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

{% include template %}

{% endwith %}


查看完整回答
反对 回复 2019-11-25
?
HUH函数

TA贡献1836条经验 获得超4个赞

不要add用于字符串,您应该定义一个自定义标签,如下所示:


创建一个文件: <appname>\templatetags\<appname>_extras.py


from django import template


register = template.Library()


@register.filter

def addstr(arg1, arg2):

    """concatenate arg1 & arg2"""

    return str(arg1) + str(arg2)

然后像@Steven所说的那样使用它


{% with "shop/"|addstr:shop_name|addstr:"/base.html" as template %}

    {% include template %}

{% endwith %}

避免的原因 add


根据文档


该过滤器将首先尝试将两个值都强制转换为整数...可以强制转换为整数的字符串将被求和,而不是串联在一起 ...


如果两个变量碰巧都是整数,则结果将是意外的。


查看完整回答
反对 回复 2019-11-25
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

我已经更改了文件夹层次结构


/shop/shop_name/base.html 转到 /shop_name/shop/base.html


然后下面将工作。


{% extends shop_name|add:"/shop/base.html"%} 

现在,它能够扩展base.html页面。


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 2167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信