【问题标题】:Modify django templates to check for values in a dict修改 django 模板以检查字典中的值
【发布时间】:2015-01-08 06:23:00
【问题描述】:

我有以下 Django 模板。

{% load custom_tags %}
<ul>
{% for key, value in value.items %}
<li> {{ key }}: {{ value }}</li>
{% endfor %}

我需要检查value 并进行一些修改。

如果值是 True ,而不是值我必须打印 Applied ,否则如果是 False 我需要打印 Not Applied

如何实现?

【问题讨论】:

    标签: python django


    【解决方案1】:

    这里非常简单的 if-else 子句。看看django template docs,熟悉一些常见的标签。

    {% if value %}
      APPLIED
    {% else %}
       NOT APPLIED 
    {% endif %}
    

    您问如何将其用作过滤器...我不知道为什么,但就是这样:

    在你的应用程序的templatetags 目录中创建一个名为my_tags.py 的文件并制作内容

    from django import template
    
    register = template.Library()
    
    @register.filter
    def applied(value):
        if value:
            return 'Applied'
        else:
            return 'Not applied'
    

    然后确保在您的模板中包含{% load my_tags %} 并将过滤器与{{ value|applied }} 一起使用

    【讨论】:

    • 如何使用过滤器来做到这一点
    • 为什么需要过滤器来执行此操作?
    • 第一种情况非常简单...我不确定您如何期望条件更优雅。我想过滤器会导致模板中的代码更少,但整体代码更多。
    猜你喜欢
    • 2017-11-07
    • 2015-11-02
    • 2012-01-16
    • 1970-01-01
    • 2018-12-08
    • 2014-03-27
    • 1970-01-01
    • 2014-02-08
    相关资源
    最近更新 更多