Django Ajax返回模板作为数据
你想知道在用ajax请求一个视图时,怎么把模板数据返回给jquery的调用。
举个例子,我是这样发ajax请求的。
<script>
function getProfile(username) {
$.getJSON("/profiles/"+username, { username:{{ username }}}, function(json){
alert("Was successful?: " + json['success']);
});
}
function addClickHandlers() {
$(".person-name").click( function()
getProfile(result.user.username) });
}
$(document).ready(addClickHandlers);
</script>
这是我的django视图
def profiles_view(request, username):
# if username:
# selected_user = User.objects.get(username = username)
results = {'success':False}
if request.method == u'GET':
GET = request.GET
if GET.has_key(u'username'):
results = {'success':True}
json = simplejson.dumps(results)
return HttpResponse(json, mimetype='application/json')
我可以把我的模板视图 profiles_view.html
传给HttpResponse吗?我不太确定我的模板应该怎么用。
2 个回答
0
如果你只是想通过ajax传递数据,那就不需要使用模板。
0
如果你需要同时显示HTML页面和JSON数据,可能需要发送两个响应。第一个是用TemplateResponse
来返回HTML,第二个是用HttpResponse
来返回JSON。虽然看起来发送两个请求不太高效,但第一次请求是一次性的,之后你只需要通过AJAX请求获取JSON数据就可以了。
你可以通过以下方式返回一个模板:
return TemplateResponse(request, "profiles_view.html", results)