Django Template - 如果item ==从模型对象返回字段

时间:2017-04-19 20:47:18

标签: python django

Django 1.10,python 3.5

大家好!

我在models.py中有一个名为“Building_type”的模型:

class Building_type(models.Model):
    buildingType = models.CharField(max_length=40)
    def __str__(self):
        return self.buildingType

以及发送到django HTML模板的建筑物列表,名为“buildingList”,如下所示:

[
 {'name': 'building1', 'type': <Building_type: Blacksmith>},
 {'name': 'building2', 'type': <Building_type: Inn>},
 {'name': 'building3', 'type': <Building_type: Chemist>},
]

我想这样做:

{% for building in buildingList %}
    {% if building.type == "Inn" %}
        <p> this is an Inn </p>
    {% endif %}
{% endfor %}

然而,IF语句永远不会完成。 我试过以下,都失败了:

{% if building.type == building.type.Inn %}
{% if building.type == Inn %}
{% if building.type == "Inn" %}

如果有帮助,以下内容正确地将“Blacksmith”,“Inn”和“Chemist”返回给HTML:

{% for building in buildingList %}
    {% if building.type %}
        {{building.type}}
    {% endif %}
{% endfor %}

非常感谢大家的帮助

1 个答案:

答案 0 :(得分:3)

如果我正确地遵循这个不应该这样做吗?

{% if building.type.buildingType == "Inn" %}

因为type是一个Building_type模型的实例,而该类型又有一个buildingType字段,因此访问type.buildingType