sim*_*mon 15 django django-templates
我正在使用Django 1.3.如果我将以下片段放入我的模板中:
{% if 'my string'|length > 10 %}{{ 'my string'|length }}{% endif %}
Run Code Online (Sandbox Code Playgroud)
渲染引擎打印'9'.我唯一能想到的是|length过滤器返回一个字符串,但这在极端情况下似乎很奇怪.谁能指出我正确的方向?
谢谢!
编辑:
我实际想要测试的长度来自flatpage.title提供django.contrib.flatpages.出于这个原因,我宁愿不破解视图来提供模板所需的信息.我希望我可以简单地使用Django文档中|length描述的过滤器.但是,正如已经指出的那样,这样做的唯一方法似乎也是使用过滤器,其行为在这方面没有明确定义.:(|get_digit
DTi*_*ing 12
我建议不要使用它,但我之前已经get_digit将length过滤器和过滤器结合起来使其工作.
{% if "12345678901234567890"|length|get_digit:"-1" > 20 %}
{{ "12345678901234567890"|length }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
在模板中没有任何结果,但是:
{% if "12345678901234567890"|length|get_digit:"-1" > 19 %}
{{ "12345678901234567890"|length }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
结果是:
20
Run Code Online (Sandbox Code Playgroud)
正在印刷.
是的,过滤器总是返回一个字符串.
您可以通过计算视图中的字符串长度来实现所需的功能,并执行以下操作:
{% if str_length > 10 %}
{{ str_length }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
或者根据需要创建自定义过滤器:http://code.djangoproject.com/wiki/BasicComparisonFilters
编辑错字
小智 5
我知道它很晚,但是按照django 2.1,您的代码可以工作。请参阅下面的参考 https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#filters
{% if messages|length >= 100 %}
You have lots of messages today!
{% endif %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19119 次 |
| 最近记录: |