2017-04-19 97 views
0

Django 1.10,python 3.5Django模板 - 如果项目==从模型对象返回字段

大家好!

我有一个模型,在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" %} 

如果有帮助,下面正确返回 “铁匠”, “客栈” 和 “化学家”,以HTML:

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

非常感谢,如果你们都可以帮助

回答

2

如果我正确地关注这个不应该这项工作?

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

作为类型是Building_type模型又具有buildingType的访问,从而也就是type.buildingType

+0

为了确认,此工作完美的字段的一个实例。 – penuts

+0

非常高兴它的工作,如果可以的话,请接受答案。 – davidejones