2

我有一个带有 ContentType 字段的模型。

在任何模型方法中,我都可以将其与字符串进行比较:

self.content_type == "construction" # True if ContentObject points to Construction model.

但是,这样的事情似乎不适用于模板。

我尝试的第一件事

{% if object.content_type == "construction" %}

第二:

def __unicode__(self): 
    return str(self.content_type)
`{% if object == "construction" %}`

它是假的,但 {{ object }} 打印construction

4

1 回答 1

6

unicode 方法ContentType只是显示名称,这就是为什么{{ object }}显示construction在模板中。

class ContentType(models.Model):
    ...
    def __unicode__(self):
        return self.name

但是,object.content_type是一个ContentType实例,而不是字符串,因此将其与“构造”进行比较将始终返回False. 尝试比较内容类型model

{% if object.content_type.model == "construction" %}
于 2012-04-04T13:07:48.847 回答