2
我无法弄清楚如何将多个参数发送到自定义模板过滤器中。Django - 模板标签中变量的字符串
问题是我使用模板变量作为参数。
自定义模板过滤器
@register.filter
def is_scheduled(product_id,dayhour):
day,hour = dayhour.split(',')
return Product.objects.get(id=product_id).is_scheduled(day,hour)
正常使用
{% if product.id|is_scheduled:"7,22" %}...{% endif %}
线之上会正常工作,就像我把两个参数 - 7和22进入过滤器(测试 - 作品) 。问题是我想把变量而不是纯文本/字符串作为参数。
在我的模板:
{% with day=forloop.counter|add:"-2" hour=forloop.parentloop.counter|add:"-2" %}
现在,我想用{{ day }}
和{{ hour }}
作为参数。
我试图例如:
{% if product.id|is_scheduled:"{{ day }},{{ hour }}" %}...{% endif %}
但是这引起了:
异常值:无效字面对于int()与底座10: '{{天}}'
你有什么想法吗?
不幸的是,这是行不通的。我不知道为什么。大概一天一小时都是整数。它返回:异常值:\t 'int'对象没有属性'split',如果我打印dayhour变量,它会打印0而不是“0,2”。 –
我更新了包含类型转换的答案 –
似乎是一种很好的方法,但存在一些问题,可能是语法。 u'with'收到一个无效的标记:u'hour | stringformat:'s''我试图弄清楚错误的重点。 –