【问题标题】:Django render_to_response() is returning empty responseDjango render_to_response() 返回空响应
【发布时间】:2014-12-02 11:37:16
【问题描述】:

我希望能够返回 HTML 响应并使用 AJAX 将其附加到我的 DOM,但它返回的是空响应。

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. 我需要在html中输入&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt;吗?
  3. 我怎么{% load staticfiles %}

【问题讨论】:

  • 我不知道静态文件与您的问题有什么关系。

标签: jquery python html ajax django


【解决方案1】:

这一行:

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

如果loaded_post 大于 5 将不起作用,因为切片列表 [6:5] 将返回 []。你大概的意思是:

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

【讨论】:

  • 做到了。正如预期的那样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多