Да, для этого вам нужно использовать тег шаблона.Если все, что вам нужно сделать, это визуализировать другой шаблон, вы можете использовать тег включения или, возможно, просто встроенный {% include 'path / to / template.html'%}
Теги шаблона могут делать все, что угодно.можно сделать в Python.
http://docs.djangoproject.com/en/1.3/howto/custom-template-tags/
[Followup] Вы можете использовать метод render_to_string:
from django.template.loader import render_to_string
content = render_to_string(template_name, dictionary, context_instance)
Вам нужно будет либо разрешить объект запроса изконтекст или передать его в качестве аргумента тегу шаблона, если вам нужно использовать context_instance.
Followup Answer: пример тега включения
Django ожидает, что теги шаблона будут жить в папке с именем'templatetags', который находится в модуле приложения в ваших установленных приложениях ...
/my_project/
/my_app/
__init__.py
/templatetags/
__init__.py
my_tags.py
#my_tags.py
from django import template
register = template.Library()
@register.inclusion_tag('other_template.html')
def say_hello(takes_context=True):
return {'name' : 'John'}
#other_template.html
{% if request.user.is_anonymous %}
{# Our inclusion tag accepts a context, which gives us access to the request #}
<p>Hello, Guest.</p>
{% else %}
<p>Hello, {{ name }}.</p>
{% endif %}
#main_template.html
{% load my_tags %}
<p>Blah, blah, blah {% say_hello %}</p>
Тег включения отображает другой шаблон, как вам нужно, но без необходимости вызова функции просмотра.Надеюсь, это поможет вам.Документы на теги включения находятся по адресу: http://docs.djangoproject.com/en/1.3/howto/custom-template-tags/#inclusion-tags