django ajax将模板作为数据返回

时间:2013-02-06 02:25:24

标签: jquery python ajax django django-templates

如何向视图发出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 :(得分:0)

如果您需要HTML视图和JSON视图,则可能需要两个响应。第一个来自TemplateResponse,第二个来自HttpResponse。两个请求似乎效率低下,但第一个请求是一次性的,之后您只需要使用AJAX请求进行JSON响应。

您可以通过以下方式返回模板:

 return TemplateResponse(request, "profiles_view.html", results)

答案 1 :(得分:0)

如果您打算通过ajax传递数据,则不需要模板。