Django return 呈现模板和 Json 响应
Django return render template and Json response
我如何在 Django 中渲染模板并在一个 return 中制作 JsonResponse?
return render(request, 'exam_partial_comment.html', {'comments': comments, 'exam_id': exam})
我正在尝试将它与 JsonResponse
或类似的东西相结合,这样它就会呈现 exam_partial_comment.html 以及 return
JsonResponse({"message": message})
所以我可以用 ajax 成功函数显示消息:
console.log(data.message)
正如@nik_m提到的那样。您不能在回复中同时发送 html 和 json。另外,考虑到事实,Ajax 调用无法呈现模板。不过,你可以做这样的事情来实现你想要的
在views.py
def view_name(request):
if request.method == 'POST':
html = '<div>Hello World</div>'
return JsonResponse({"data": html, "message": "your message"})
在html
<div id="test"></div>
<script>
$(document).ready(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: '/view/',
data: data,
success: function(response) {
console.log(response.message);
$('#test').append(response.data);
}
});
});
</script>
希望对您有所帮助。
我如何在 Django 中渲染模板并在一个 return 中制作 JsonResponse?
return render(request, 'exam_partial_comment.html', {'comments': comments, 'exam_id': exam})
我正在尝试将它与 JsonResponse
或类似的东西相结合,这样它就会呈现 exam_partial_comment.html 以及 return
JsonResponse({"message": message})
所以我可以用 ajax 成功函数显示消息:
console.log(data.message)
正如@nik_m提到的那样。您不能在回复中同时发送 html 和 json。另外,考虑到事实,Ajax 调用无法呈现模板。不过,你可以做这样的事情来实现你想要的
在views.py
def view_name(request):
if request.method == 'POST':
html = '<div>Hello World</div>'
return JsonResponse({"data": html, "message": "your message"})
在html
<div id="test"></div>
<script>
$(document).ready(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: '/view/',
data: data,
success: function(response) {
console.log(response.message);
$('#test').append(response.data);
}
});
});
</script>
希望对您有所帮助。