3 回答
TA贡献1880条经验 获得超4个赞
用于:
{% with "shop/"|add:shop_name|add:"/base.html" as template %}
{% include template %}
{% endwith %}
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
根据文档
该过滤器将首先尝试将两个值都强制转换为整数...可以强制转换为整数的字符串将被求和,而不是串联在一起 ...
如果两个变量碰巧都是整数,则结果将是意外的。
TA贡献1828条经验 获得超6个赞
我已经更改了文件夹层次结构
/shop/shop_name/base.html 转到 /shop_name/shop/base.html
然后下面将工作。
{% extends shop_name|add:"/shop/base.html"%}
现在,它能够扩展base.html页面。
- 3 回答
- 0 关注
- 2229 浏览
添加回答
举报