Dans mon projet, j'ai un cours, NewsItem. Les instances de NewsItem agissent comme un wrapper. Ils peuvent être associés à une instance ArtWork ou à une instance d'annonce.Django: moyen de tester quelle classe est une relation générique content_object?
Voilà comment le modèle NewsItem ressemble:
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())
Dans un modèle que je traite une instance NewsItem, et souhaite produire un certain groupe de HTML, il lui est « emballage » une instance de l'œuvre, et un tas différent de html s'il encapsule une instance d'annonce. Quelqu'un pourrait-il expliquer comment je peux écrire un conditionnel pour tester cela?
Mon premier essai naïf ressemblait à ceci:
{% if news_item.content_object.type=='Artwork' %}do this{% else %}do that{% endif %}
Ah si simple! Merci beaucoup. – bitbutter