2010-05-06 3 views
1

내 프로젝트에는 NewsItem 클래스가 있습니다. NewsItem의 인스턴스는 래퍼처럼 작동합니다. 그것들은 ArtWork 인스턴스 또는 Announcement 인스턴스와 연관 될 수 있습니다. 내가 NewsItem의 인스턴스를 처리하고있어 템플릿에서Django : content_object라는 일반적인 관계가 어떤 클래스인지 테스트하는 방법은 무엇입니까?

class 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,) 
class Meta: 
    ordering = ('-date',) 
def __unicode__(self): 
    return (self.title())

및 출력 HTML 그것은 그것의 '포장'은 작품 인스턴스의 특정 무리를하고 싶습니다, 그리고 다음은

는 NewsItem의 모델이 보이는 방법 발표 인스턴스를 래핑하는 경우 HTML의 다른 무리. 누군가가 이것을 테스트하기 위해 조건부를 작성할 수있는 방법을 설명 할 수 있습니까?

내 첫 순진 시도는이처럼 보였다 :

{% if news_item.content_object.type=='Artwork' %}do this{% else %}do that{% endif %} 

답변

3

당신은이 정보를 저장 content_type,에 외래 키를 사용해야합니다.

{% if news_item.content_type.model == 'Artwork' %} 
+0

아 간단! 매우 감사합니다. – bitbutter

관련 문제