Я думаю, что простой шаблонный фильтр здесь подходит лучше всего. Это действительно быстро реализовать и легко вызвать. Примерно так:
в templatetags / my_filters.py:
from django import template
from django.utils.importlib import import_module
register = template.Library()
@register.filter
def isinst(value, class_str):
split = class_str.split('.')
return isinstance(value, getattr(import_module('.'.join(split[:-1])), split[-1]))
в вашем шаблоне:
{% load my_filters %}
...
{% if myvar|isinst:"mymodule.MyClass" %}
...do your stuff
{% endif %}
Хотя приведенный выше пример кода (не тестировался), я считаю, что он должен работать.
Для получения дополнительной информации о пользовательских шаблонных фильтрах см. документацию django
РЕДАКТИРОВАТЬ: Отредактировал ответ, чтобы показать, что аргумент фильтра на самом деле является строкой, а не классом Python