2014-12-02 104 views
0

我希望能够通过AJAX返回HTML响应并将其附加到我的DOM,但它返回的是空响应。Django render_to_response()返回空响应

AJAX

$(document).on('click', '.load-more-posts', function(){ 
    var $this = $(this); 
    var userID = $('.user_id').val(); 
    var request = $.ajax({ 
      url: "/mysite/load_more/", 
      type: "POST", 
      data: { user_id : userID }, 
      dataType: "html" 
     }); 
     request.done(function(msg) {   
      console.log(msg); 
     }); 
}) 

urls.py

url(r'^load_more_posts/$', views.load_more, name='loadMore'), 

views.py

def load_more(request): 
    if request.is_ajax(): 

     loaded_post = request.session['loaded'] 
     more_posts = Posts.objects.all()[loaded_post:5] 
     request.session['loaded'] += 5 
     context = {'more_posts':more-posts} 

     return render_to_response('mysite/loadmore.html', context) 

loadmore.html

this is all I have in the html file 

{% for article in more_posts %} 
    <div class='user-article'> 
     <h3> {{article.header}} </h3> 
     <p> {{article.content}}</p> 
    </div> 
{% endfor %} 
  1. 为什么这回空的回应?
  2. 我需要把<!DOCTYPE html>,<html lang="en">,<head>在html中吗?
  3. 我如何{% load staticfiles %}
+0

我不知道静态文件和你的问题有什么关系。 – 2014-12-02 11:43:48

回答

1

这行:[:5 6]将返回[]如果loaded_post大于5,由于切片列表

more_posts = Posts.objects.all()[loaded_post:5] 

将无法​​正常工作。你大概的意思是:

more_posts = Posts.objects.all()[loaded_post:loaded_post+5] 
+0

这样做了。如预期。 – Yax 2014-12-02 11:58:13