2 回答
![?](http://img1.sycdn.imooc.com/545864190001966102200220-100-100.jpg)
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/
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
TA贡献1775条经验 获得超11个赞
您的模板部分是正确的。这是正确的语法:
{% if idea.status == 'Not Started' %}
记录数据
调试模板中的内容的最简单方法是在渲染模板之前记录您所拥有的内容。您可以使用日志记录模块Docs或简单的:
print(payload_for_rendering)
Django 调试工具栏
为每个 Django 开发人员安装主要调试工具 - Django 调试工具栏安装文档。您可以使用工具栏中的“模板”模块在漂亮的用户界面中查看模板收到的数据。您可以检查是否向模板渲染发送了正确的数据。
添加回答
举报