没有 return 的 Django 渲染?
Django render without return?
我的视图函数中有 for 循环。我需要计算一些东西并为每次迭代渲染内容。但是需要返回渲染,这就是为什么它只进行一次迭代然后我的视图函数结束。有什么办法可以绕过这个吗?感谢您的回复。这就是我想象中的样子。
for i in iterations:
...
context = i.name
render(request, template, {context: context})
return render(request, template, {context: context})
在您的循环中,您将覆盖 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}))
我的视图函数中有 for 循环。我需要计算一些东西并为每次迭代渲染内容。但是需要返回渲染,这就是为什么它只进行一次迭代然后我的视图函数结束。有什么办法可以绕过这个吗?感谢您的回复。这就是我想象中的样子。
for i in iterations:
...
context = i.name
render(request, template, {context: context})
return render(request, template, {context: context})
在您的循环中,您将覆盖 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}))