Эй, спасибо, Викингосегундо!
Мне тоже нравится использовать декораторы :-).
Но в то же время я следовал подходу, предложенному фрагментом, который я упоминал выше. Единственное, используйте вместо фрагмент n. 942 , потому что это улучшенная версия оригинала. Вот как это работает:
Представьте, что у вас есть шаблон (например, 'subtemplate.html') любого размера, содержащий полезный блок, который вы можете использовать повторно:
........
<div id="results">
{% block results %}
{% for el in items %}
<li>{{el|capfirst}}</li>
{% endfor %}
{% endblock %}
</div><br />
........
Импортируя в свой файл просмотра фрагмент выше, вы можете легко ссылаться на любой блок в ваших шаблонах. Интересная особенность заключается в том, что учитываются отношения наследования между шаблонами, поэтому, если вы ссылаетесь на блок, который включает в себя другой блок и т. Д., Все должно работать нормально. Итак, ajax-view выглядит так:
from django.template import loader
# downloaded from djangosnippets.com[942]
from my_project.snippets.template import render_block_to_string
def ajax_view(request):
# some random context
context = Context({'items': range(100)})
# passing the template_name + block_name + context
return_str = render_block_to_string('standard/subtemplate.html', 'results', context)
return HttpResponse(return_str)