在自定义 Django 标签中过滤?
Filter in custom Django tag?
我创建了一个接受参数的自定义标签:
{% panel "most" %}
我会使用 add
参数:
{% panel "most"|add:"_people" %}
我希望参数是 "most_people",但实际上是 "most"|add:"_people"。似乎在自定义标签内没有调用过滤器。如何让它们发挥作用?
如果您使用 simple_tag
装饰器编写您的自定义标签,您应该能够对参数使用过滤器。
但是,如果您已经编写了 advanced template tag,那么您将需要做额外的工作才能使 "most"|add:"_people"
根据需要使用过滤器。
一种解决方法是使用 {% with %}
标记将过滤器的结果分配给变量。
{% with panel_name="most"|add:"_people" %}
{% panel panel_name %}
{% endwith %}
我创建了一个接受参数的自定义标签:
{% panel "most" %}
我会使用 add
参数:
{% panel "most"|add:"_people" %}
我希望参数是 "most_people",但实际上是 "most"|add:"_people"。似乎在自定义标签内没有调用过滤器。如何让它们发挥作用?
如果您使用 simple_tag
装饰器编写您的自定义标签,您应该能够对参数使用过滤器。
但是,如果您已经编写了 advanced template tag,那么您将需要做额外的工作才能使 "most"|add:"_people"
根据需要使用过滤器。
一种解决方法是使用 {% with %}
标记将过滤器的结果分配给变量。
{% with panel_name="most"|add:"_people" %}
{% panel panel_name %}
{% endwith %}