gpt4 book ai didi

python - django - 在 simple_tag 的参数中使用过滤器

转载 作者:太空狗 更新时间:2023-10-30 01:35:12 24 4
gpt4 key购买 nike

我有一个自定义的简单标签。而且我似乎不能使用过滤器作为它的参数。

这是一个例子。 mysum 是标签。 myincrease 是过滤器。 foobar 是一个变量,我想将 foobar|myincrease 传递给 mysum

模板:

{% mysum foobar|myincrease 1 2 %}

给出错误:

TemplateSyntaxError at /

Caught VariableDoesNotExist while rendering: Failed lookup for key [foobar|myincrease] in ...

标签:

@register.simple_tag
def mysum(a, b, c):
return a + b + c

过滤器:

@register.filter
def myincrease(num):
return num + 1

我已经使用其他方法解决了我原来的问题。但我仍然想知道这是设计使然,还是我的错误,还是 django 的错误,还是被忽略的事情。

我认为在 simple_tag 装饰器实现中调用类似 compile_filter 的东西就可以了。

最佳答案

虽然它似乎没有在工单中提及,但看起来像是修复了 https://code.djangoproject.com/ticket/13956添加了对标签位置参数的过滤器支持。您可以在 https://github.com/django/django/commit/8137027f 看到提交- 新的 parse_bits 函数在位置参数上调用了 compile_filter()

另一种解决方法是使用 {% with %} 标签。

关于python - django - 在 simple_tag 的参数中使用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com