{% if %} 標簽檢查(evaluate)一個變量,如果這個變量為真(即,變量存在,非空,不是布爾值假),系統會顯示在 {% if %} 和 {% endif %} 之間的任何內容,例如:
{% if today_is_weekend %} <p>Welcome to the weekend!</p>{% endif %}{% else %} 標簽是可選的:
{% if today_is_weekend %} <p>Welcome to the weekend!</p>{% else %} <p>Get back to work.</p>{% endif %}Python 的“真值”
在Python和Django模板系統中,以下這些對象相當于布爾值的False
提示:你也可以在自定義的對象里定義他們的布爾值屬性(這個是python的高級用法)。
除以上幾點以外的所有東西都視為`` True``
{% if %} 標簽接受 and , or 或者 not 關鍵字來對多個變量做判斷 ,或者對變量取反( not ),例如: 例如:
{% if athlete_list and coach_list %} Both athletes and coaches are available.{% endif %}{% if not athlete_list %} There are no athletes.{% endif %}{% if athlete_list or coach_list %} There are some athletes or some coaches.{% endif %}{% if not athlete_list or coach_list %} There are no athletes or there are some coaches.{% endif %}{% if athlete_list and not coach_list %} There are some athletes and absolutely no coaches.{% endif %}{% if %} 標簽不允許在同一個標簽中同時使用 and 和 or ,因為邏輯上可能模糊的,例如,如下示例是錯誤的: 比如這樣的代碼是不合法的:
{% if athlete_list and coach_list or cheerleader_list %}系統不支持用圓括號來組合比較操作。 如果你確實需要用到圓括號來組合表達你的邏輯式,考慮將它移到模板之外處理,然后以模板變量的形式傳入結果吧。 或者,僅僅用嵌套的{% if %}標簽替換吧,就像這樣:
{% if athlete_list %} {% if coach_list or cheerleader_list %} We have athletes, and either coaches or cheerleaders! {% endif %}{% endif %}多次使用同一個邏輯操作符是沒有問題的,但是我們不能把不同的操作符組合起來。 例如,這是合法的:
{% if athlete_list or coach_list or parent_list or teacher_list %}并沒有 {% elif %} 標簽, 請使用嵌套的`` {% if %}`` 標簽來達成同樣的效果:
{% if athlete_list %} <p>Here are the athletes: {{ athlete_list }}.</p>{% else %} <p>No athletes are available.</p> {% if coach_list %} <p>Here are the coaches: {{ coach_list }}.</p> {% endif %}{% endif %}一定要用 {% endif %} 關閉每一個 {% if %} 標簽。
新聞熱點
疑難解答
圖片精選