【发布时间】:2017-03-19 08:43:28
【问题描述】:
我不知道如何将多个参数发送到自定义模板过滤器。
问题是我使用模板变量作为参数。
自定义模板过滤器
@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 为底的无效文字:'{{ day }}'
你有什么想法吗?
【问题讨论】:
标签: python django django-templates django-template-filters