Я бы сказал, сделайте это в своей модели, а не в качестве сравнения в шаблоне, как предлагает @zeekay. Это приводит к неприятной зависимости от внутренней детализации (если вы измените имя вашего класса, все сломается).
Я бы сделал это примерно так:
class ModelA(models.Model):
is_such_and_such = False
class ModelB(ModelA):
is_such_and_such = True
Это может быть сделано как свойство с isinstance
или сравнением self.__class__.__name__
, но я думаю, что определение настоящего логического значения - лучшая идея.
Конечным результатом является то, что в вашем шаблоне вы можете иметь:
{% if obj.is_such_and_such %}
...
{% else %}
...
{% endif %}
Я бы тоже делал это как функциональную вещь, а не как модель. Подумайте, как у вас есть is_staff
на собственной модели User
Джанго. Там не используются отдельные классы, но идея применима. Убедитесь, что то, что находится в шаблоне, имеет смысл для того, кто ничего не знает о реализации в серверной части.