【问题标题】:Django vote button with ajax带有ajax的Django投票按钮
【发布时间】:2014-09-20 07:25:25
【问题描述】:

我有这个网址:

(r'^oyla/(\d+)/$', oyla),

我有这样的看法:

@login_required
def oyla(request, id):
    if request.is_ajax():
        entry = Entry.objects.get(pk=id)
        entry.points += 1
        entry.save()
        if 'HTTP_REFERER' in request.META:
            return HttpResponseRedirect(request.META['HTTP_REFERER'])
        return HttpResponseRedirect('/')

我在 html 中有这些:

{{ ent.points }}
<a href="/oyla/{{ ent.id }}" class="oyla">Vote Up</a>

这是我的 js:

<script type="text/javascript">
    $("a.oyla").click(function(){
    var curr_elem = $(this) ;
    $.get($(this).attr('href'), function(data){
        var my_div = $(curr_elem).parent().find("b");
        my_div.text(my_div.text()*1+1);     
    }); 
    return false;
});
  </script>

我想在点击“投票”时进行投票。我想在不刷新任何页面的情况下看到积分增加。它不起作用。它说

The view baslik.views.oyla didn't return an HttpResponse object.

我能做些什么来解决这个问题? 谢谢。

【问题讨论】:

    标签: javascript jquery python ajax django


    【解决方案1】:

    尝试使用 $.ajax 并禁用 cache。我读过使用$.ajax 可以在所有浏览器上使用,但$.get 不会使用IE 发送ajax 标头。在这种情况下 is_ajax() 不是 True 并且没有 HttpResponse 返回对象。使用:

    $("a.oyla").click(function(){
        var $curr_elem = $(this);
        $.ajax({
            url: $curr_elem.attr('href'),
            cache: false,
            success: function (data) {
                $curr_elem.parent().find("b").text(my_div.text()*1+1);  
            }
        });
        return false;
    });
    

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多