首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在django模板语言中检查表对象中字段的值是否等于特定的字符串?

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

Stack Overflow用户
提问于 2020-09-06 07:07:33
回答 2查看 128关注 0票数 0

我迭代了一个名为Ideas.的django表中的所有条目,表中的一个字段是status,我想检查状态是否等于某个特定的字符串。我已经检查了我是否正确地访问了这个字段,我的例子是idea.status,但是我找不到如何将该条目与django模板语言文档中的特定字符串进行比较。我正在尝试根据单元格中的内容来更改表格的单元格颜色。以下是我尝试的方法,但无济于事:

代码语言:javascript
复制
{% 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语句本身。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-06 07:53:34

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

代码语言:javascript
复制
{% 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/

票数 0
EN

Stack Overflow用户

发布于 2020-09-06 07:53:41

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

代码语言:javascript
复制
{% if idea.status == 'Not Started' %}

日志记录数据

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

代码语言:javascript
复制
print(payload_for_rendering) 

Django调试工具栏

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63759274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档