使用ajax请求Django服务器

时间:2015-02-25 09:36:21

标签: javascript jquery ajax django

我的views.py -

def wall(request):
    if request.method == 'POST':
        post = request.POST
        if 'logout' in post:
            del request.session['username']
            return redirect('home')
        elif 'post' in post:
            if post['post_text'] and not post['post_text'].isspace():
                posted_by = request.session.get('username', '')
                post_content = post['post_text']
                post_id = posted_by+''+datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")
                p = user_post(posted_by = posted_by, post_content = post_content, post_id = post_id)
                p.save()
                return redirect('wall')
            else:
                return redirect('error')
        elif 'search_user' in post:
            return redirect('search_user')
        elif 'profile' in post:
            return redirect('profile') 
    else:
        if 'username' in request.session:
            posts = user_post.objects.order_by('id')[:20].reverse()
            return render(request, 'wall/wall_page.html', {'posts': posts, 'user': request.session['username']}) 
        else:
            return redirect('error')

模板 -

<div class="row" id="posts">
            {% if posts %}
                {% for post in posts %}
                    {% if user == post.posted_by %}
                        <p class="lead text-success text-right">
                            {{ post.post_content }}
                            <small>
                                <small>
                                    <small>
                                        <small>
                                            {{ post.posted_by }}
                                        </small>
                                    </small>
                                </small>
                            </small>
                        </p>
                    {% else %}
                        <p class="lead text-info text-left">
                            {{ post.post_content }}
                            <small>
                                <small>
                                    <small>
                                        <small>
                                            {{ post.posted_by }}
                                        </small>
                                    </small>
                                </small>
                            </small>
                        </p>
                    {% endif %}
                {% endfor %}
            {% endif %}
        </div>

和相关的js文件 -

$(document).ready(function()
    {
        setInterval(function() 
        {
            $.ajax(
            {
                type : "GET",
                url : "http://10.8.21.17:8000/wall/wall",
            }).done(function()
            {
                $('#posts').html();
            });
        }, 3000);
    });

对服务器有正确的GET请求,但页面没有重新加载...即。当用户发帖时,即使每3秒钟有一个GET请求,它实际上也没有向其他用户显示。我复制粘贴了js代码,不知道它是否正确。有人帮我请。我想要做的是页面应该在js的帮助下重新加载,以便用户不必刷新。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您没有对JS中服务器的响应做任何事情。你需要实际使用它:

.done(function(data)
        {
            $('#posts').html(data);
        });