擅长:python、mysql、java
<p>嘿,谢谢维金戈塞贡多!</p>
<p>我也喜欢用装饰工。
但与此同时,我一直在遵循上面提到的片段所建议的方法。唯一的问题是,改用<a href="http://www.djangosnippets.org/snippets/942/" rel="noreferrer">the snippet n. 942</a>,因为它是原始版本的改进版。其工作原理如下:</p>
<p>假设您有一个任意大小的模板(例如'subtemplate.html'),其中包含一个可以重用的有用块:</p>
<pre><code> ........
<div id="results">
{% block results %}
{% for el in items %}
<li>{{el|capfirst}}</li>
{% endfor %}
{% endblock %}
</div><br />
........
</code></pre>
<p>通过在视图文件中导入上面的代码片段,可以方便地引用模板中的任何块。一个很酷的特性是考虑了模板之间的继承关系,因此如果您引用包含另一个块等的块,那么一切都应该正常工作。因此,ajax视图如下所示:</p>
<pre><code>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)
</code></pre>