What you're doing sounds fine, but the question could be asked: Why not put the templatetag references directly in your template instead of manually rendering them?
<div>
{% if object matches some criteria %}
{% render_type1_object object %}
{% else %}
{% render_type2_object object %}
{% endif %
... etc ...
</div>
Or, better yet, have one central templatetag for rendering an object (or list of objects), which encapsulates the mapping of object types to templatetags. Then all of your templates simply reference the one templatetag, with no type-knowledge necessary in the templates themselves.
The key being that you're moving knowledge of how to render individual objects out of your views.