簡體   English   中英

Python HTML模板三元運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM