เทมเพลต django แสดงค่ารายการหรือสตริงว่าง


91

รหัสของฉันในเทมเพลตเป็นดังนี้:

{% for item in items %}
    {{ item.somefield }}
{% endfor %}

ฉันต้องการแสดงค่ารายการถ้า item.somefield ไม่ใช่ None หรือแสดงสตริงว่าง ฉันไม่ต้องการใช้คำสั่ง {% if item.somefield%} ฉันต้องการบางอย่างเช่น {{item.somefield หรือ ''}} (ฉันลองแล้ว แต่ไม่ได้ผล)

คำตอบ:


233

คุณต้องการdefault_if_noneตัวกรองเทมเพลต ( doc )

default_if_none จะแสดงสตริงที่กำหนดหากตัวแปรเป็น 'ไม่มี'

default จะแสดงสตริงหากตัวแปรประเมินเป็น False เช่นสตริงว่างรายการว่างเป็นต้น

{{ item.somefield|default_if_none:"" }}
{{ item.somefield|default:"" }}

ขอบคุณ @rockingskier;)
Moe Far

12
{{ item.somefield|default_if_none:"" }}

5
คุณอาจต้องการเพิ่มคำอธิบายให้กับคำตอบของคุณแทนที่จะใส่รหัส วิธีนี้ช่วยให้ผู้ที่ถามคำถามเข้าใจคำตอบของคุณได้ดีขึ้น
Victor Zamanian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.