[英]django ajax return template as data
How do you when making an ajax request to a view return the template data to the jquery call. 在向视图发出Ajax请求时,如何将模板数据返回给jquery调用。
As an example, i am making an ajax call this way. 例如,我正在以这种方式进行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>
My django view 我的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')
Can i pass my template view profiles_view.html
to the HttpResponse? 我可以将模板视图
profiles_view.html
传递给HttpResponse吗? i am not sure where my template comes in? 我不确定我的模板放在哪里?
If you need both HTML view and JSON view, you may need two responses. 如果同时需要HTML视图和JSON视图,则可能需要两个响应。 First is from
TemplateResponse
, second one is from HttpResponse
. 首先是来自
TemplateResponse
,第二个是来自HttpResponse
。 Two requests seem inefficient, but the first request is once for all, afterwards you only need JSON response by use of AJAX request. 两个请求似乎效率低下,但是第一个请求是一次,之后,您只需要使用AJAX请求进行JSON响应即可。
You can return a template by: 您可以通过以下方式返回模板:
return TemplateResponse(request, "profiles_view.html", results)
如果您只是要通过ajax传递数据,则不需要模板。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.