为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查表对象中字段的值是否等于 django 模板语言中的特定字符串?

如何检查表对象中字段的值是否等于 django 模板语言中的特定字符串?

达令说 2023-07-18 13:58:14
Ideas.我正在迭代 django 表中名为表中一个字段 is的所有条目status,并且我想检查状态是否等于某个特定字符串。在我的例子中,我已经检查过我是否正确访问了该字段idea.status,但我找不到如何将该条目与 django 模板语言文档中的特定字符串进行比较。我正在尝试根据该单元格中的内容更改表格的单元格颜色。这是我尝试过的,但没有成功:{% for idea in ideas_list %}...        {% if idea.status == 'Not Started' %}        <td style="background-color:red;">        {% elif idea.status == 'Completed' %}        <td style="background-color:green;">        {% elif idea.status == 'In Progress' %}        <td style="background-color:yellow;">        {% else %}        <td>        {% endif %}            {{idea.status}} &nbsp;</td>...{% endfor %}我的页面仍在使用表中的状态文本进行渲染,这向我表明所有 if 都失败了,这将导致满足 else 条件,给出<td>{{idea.status}} &nbsp;</td>, 没有单元格颜色,并向我表明问题出在我的 if 中陈述本身。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我找到了一个有效的答案,并表明它与 djnago 使用的字符串格式有关。我使用了 slugify 过滤器,它将字符串转换为特定格式(小写、破折号而不是空格),然后更改我的 if 条件以匹配该格式,并且它起作用了。


{% for idea in ideas_list %}

...

        <td>{{idea.priority}} &nbsp;</td>

        <td>{{idea.difficulty}} &nbsp;</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}} &nbsp;</td>

...

{% endfor %}

您可以在此处查看 django 如何使用 slugify 格式化字符串: https://docs.djangoproject.com/en/1.10/ref/templates/builtins/


查看完整回答
反对 回复 2023-07-18
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

您的模板部分是正确的。这是正确的语法:

{% if idea.status == 'Not Started' %}

记录数据

调试模板中的内容的最简单方法是在渲染模板之前记录您所拥有的内容。您可以使用日志记录模块Docs或简单的:

print(payload_for_rendering)

Django 调试工具栏

为每个 Django 开发人员安装主要调试工具 - Django 调试工具栏安装文档。您可以使用工具栏中的“模板”模块在漂亮的用户界面中查看模板收到的数据。您可以检查是否向模板渲染发送了正确的数据。


查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 60 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信