2 回答

TA貢獻2080條經驗 獲得超4個贊
我找到了一個有效的答案,并表明它與 djnago 使用的字符串格式有關。我使用了 slugify 過濾器,它將字符串轉換為特定格式(小寫、破折號而不是空格),然后更改我的 if 條件以匹配該格式,并且它起作用了。
{% for idea in ideas_list %}
...
<td>{{idea.priority}} </td>
<td>{{idea.difficulty}} </td>
{% if idea.status|slugify == 'not-started' %}
<td style="background-color:red;">
{% elif idea.status|slugify == 'completed' %}
<td style="background-color:green;">
{% elif idea.status|slugify == 'in-progress' %}
<td style="background-color:yellow;">
{% else %}
<td>
{% endif %}
{{idea.status}} </td>
...
{% endfor %}
您可以在此處查看 django 如何使用 slugify 格式化字符串: https://docs.djangoproject.com/en/1.10/ref/templates/builtins/

TA貢獻1775條經驗 獲得超11個贊
您的模板部分是正確的。這是正確的語法:
{%?if?idea.status?==?'Not?Started'?%}
記錄數據
調試模板中的內容的最簡單方法是在渲染模板之前記錄您所擁有的內容。您可以使用日志記錄模塊Docs或簡單的:
print(payload_for_rendering)
Django 調試工具欄
為每個 Django 開發人員安裝主要調試工具 -?Django 調試工具欄安裝文檔。您可以使用工具欄中的“模板”模塊在漂亮的用戶界面中查看模板收到的數據。您可以檢查是否向模板渲染發送了正確的數據。
添加回答
舉報