django contenttype和字符串比较

时间:2012-04-04 12:53:20

标签: django django-templates content-type

我有一个包含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

1 个答案:

答案 0 :(得分:4)

ContentType的unicode方法只显示名称,这就是{{ object }}在模板中显示construction的原因。

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

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

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