我希望能够将完全呈现的模板返回到ajax调用。例如:
segment.html
<div class="swappable_segment" id="{{ id }}">
{% for object in objects %}
<li>Some text</li>
{% endfor %}
</div>
views.py
def f(request):
return SOMETHING
应该有ajax代码,这样当我按下页面上的按钮时,它会用新渲染的div交换掉旧的div。
我知道如何做AJAX部分,但我想知道函数f
应该返回什么。我认为它应该返回一个带有JSON的HttpResonse
对象和新div的html,但我不知道如何实际呈现它。
答案 0 :(得分:3)
这样的事情怎么样:
from django.template.loader import render_to_string
def f(request):
[...] #logic here to get objects_list
if request.is_ajax():
html = render_to_string('path/to/your/segment.html', {'objects': objects_list})
return HttpResponse(html)
文档:https://docs.djangoproject.com/en/1.7/ref/templates/api/#the-render-to-string-shortcut