我有这个网址:
(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.
我该怎么做才能解决这个问题? 谢谢。
请您参考如下方法:
尝试在禁用缓存 的情况下使用$.ajax。我读过使用 $.ajax 适用于所有浏览器,但 $.get 不会使用 IE 发送 ajax header 。在这种情况下,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;
});
