【发布时间】:2011-02-16 10:41:59
【问题描述】:
在我的项目中,我有一个类 NewsItem。 NewsItem 的实例就像一个包装器。它们可以与 ArtWork 实例或 Announcement 实例相关联。
NewsItem 模型的外观如下:
类 NewsItem(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
date = models.DateTimeField(default=datetime.datetime.now,)
元类:
排序 = ('-date',)
def __unicode__(self):
返回 (self.title())
在一个模板中,我正在处理一个 NewsItem 实例,并且想要输出一组 html,它正在“包装”一个 Artwork 实例,如果它正在包装一个 Announcement 实例,则输出另一组 html。有人可以解释我如何编写一个条件来测试这个吗?
我的第一次天真的尝试是这样的:
{% if news_item.content_object.type=='Artwork' %}do this{% else %}do that{% endif %}
【问题讨论】:
标签: django class polymorphism