[英]Python HTML template ternary operator
我遇到過不同的python三元運算符,例如:
a if b else 0
但是當我嘗試將其包含在Django HTML模板中時它不起作用
{% a if b else 0 %}
這是我將使用但無法使用的確切代碼:
{% 'error' if form.title.errors else '' %}
要么
{% form.title.errors ? 'error' : '' %}
我不喜歡平常
{% if form.title.errors %}error{% endif %}
因為我認為它看起來很笨重,尤其是如果添加else語句。
有什么建議么? 還是我應該堅持下去?
通過使用yesno
過濾器( documentation ),您可以或多或少地獲得所需的行為:
{{ form.title.errors|yesno:"errors," }}
在Django中,模板標記僅支持{% if %}{% else %}{% endif %}
。 如果您不想使用:
{% if form.title.errors %}error{% endif %}
你可以試試:
{{ error|default:'' }}
django模板中的測試如下:
...from django.template import Context, Template
...from django.conf import settings
...settings.configure()
...t = Template("My name is: {{ name|default:'anonymous' }} ")
如果是默認值:
...t.render(Context({}))
它會返回:
'My name is anonymous '
如果有名字:
...t.render(Context({"name": "John"}))
結果:
'My name is John '
了解更多: https : //docs.djangoproject.com/en/1.9/ref/templates/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.