小编典典
嘿,谢谢vikingosegundo!
我也喜欢使用装饰器:-)。但是与此同时,我一直在遵循我上面提到的摘录建议的方法。唯一的事情是使用代码段n。942因为它是原始版本的改进版本。运作方式如下:
想象一下,您有一个包含任意可重复使用的有用块的大小的模板(例如’subtemplate.html’):
........
{% block results %}
{% for el in items %}
{{el|capfirst}}{% endfor %}
{% endblock %}
........
通过在视图文件中导入以上代码段,您可以轻松引用模板中的任何块。一个很酷的功能是考虑了模板之间的继承关系,因此,如果您引用一个包含另一个块的块,依此类推,那么一切都应该可以正常工作。因此,ajax视图如下所示:
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)
2020-07-26