【问题标题】:django.template.exceptions.TemplateSyntaxError: Could not parse some characters: |{{b.count}}||rangefdjango.template.exceptions.TemplateSyntaxError:无法解析某些字符:|{{b.count}}||rangef
【发布时间】:2020-12-31 17:40:52
【问题描述】:

我正在尝试使用自定义过滤器在 Django 模板中循环,但由于某种原因我收到此错误:

django.template.exceptions.TemplateSyntaxError:无法解析某些字符:|{{b.count}}||rangef

myfilters.py

@register.filter(name='rangef')
def rangef(number):
    return range(number)

index.html

<div class="container">
{% for i in {{b.count}}|rangef %}
    <p>Some text</p>
{% endfor %}
</div>

值得一提的是,b.count 是一个整数字段。 感谢您的帮助!

【问题讨论】:

    标签: python html django error-handling range


    【解决方案1】:

    custom filter 可以与以下语法一起使用:

    {{ b.count | rangef }}
    

    请注意,过滤器部分位于花括号内,因为这会将过滤器 rangef 应用于左侧的值 b.count

    请注意,for 循环中不支持过滤器。考虑更改您的模型,使其直接公开过滤后的值,例如

    def b_range(self):
        return range(self.b.count)
    
    {% for i in b_range %}
    …
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 2014-12-25
      • 2022-08-18
      • 2021-11-18
      • 2015-04-08
      • 1970-01-01
      相关资源
      最近更新 更多