【问题标题】:Setting and resetting value of variable in django template在 django 模板中设置和重置变量的值
【发布时间】:2011-08-06 19:33:13
【问题描述】:

我想在 django 模板中设置和重置标志变量。有没有办法做到这一点?

{% for software in softwares %}
    //here want to asign default value to flag( flag = False)

    {% for mysoftware in mysoftwares %}
        {% if mysoftware.name == software.name %}
        //here want to set value to True to flag( flag = True)
        {{ software.name }}<br />
        {% endif %}
    {% endfor %}

    //check flag here
    {% if flag == False %}
    Software not assigned.
    {% endif %}
{% endfor %}

【问题讨论】:

    标签: python google-app-engine django-templates


    【解决方案1】:

    据我所知,没有办法做到这一点。也许在您的视图中预先计算一个元组列表,然后对其进行迭代 - 显示结果。例如:

    {% for software, assigned in software_list %}
      {% if assigned %}
        {{ software.name }}
      {% else %}
        Software not assigned
      {% endif %}
    {% endif %}
    

    然后,在您看来,只需使用简单的 python 构造填充 software_list 数据:

    names = [mysoftware.name for mysoftware in mysoftwares]
    software_list = [(software, software.name in names) for software in softwares]
    

    并将其添加到您的上下文中。

    在模板中尝试做太多事情往往很诱人,而这并不是他们真正的目的。如果您将逻辑保存在它所属的 python 中,您将获得更好的可读性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多