在我的视图函数中有for循环的情况。而且我需要为每次迭代计算一些东西并渲染内容。但是需要返回render,这就是为什么只进行一次迭代然后我的视图函数结束的原因。有什么办法可以绕过这个吗?谢谢您的回复。这就是我想象的样子。
for i in iterations:
...
context = i.name
render(request, template, {context: context})
return render(request, template, {context: context})
答案 0 :(得分:1)
在您的循环中,您将覆盖HTTP响应以及上下文,因此无论如何将无法正常工作。循环应创建一些数组或列表。
names = []
for i in iterations:
...
names.append(i.name)
return render(request, template, {'names': names})
并在您的模板中:
{% for name in names%} {{ name }} {% endfor %}
如果您确实要先渲染它(例如,如果您想添加一些html代码段),则可以使用render_to_string
rendered_str = []
for i in iterations:
...
rendered_str.append(render_to_string('my_snippet.html', {'name': i.name}))