我已经在我的项目中添加了类似的功能
ajax和django工作得很好ajax能够发送请求,django能够接收请求,反之亦然,但我遇到的问题是我无法在模板中正确更新它,我能够更新更改,但并非所有对象都会发生这种情况
每当我点击like按钮时,只有一个对象的计数会增加
我有两个标题为facebook和instagram的对象
当我点击facebook时,计数增加到1,然后点击同一个按钮,计数减少到0,这非常有效,但当我点击instagram对象的“喜欢”按钮,而不是更新自己的对象时,它正在更新facebook对象,facebook喜欢的计数正在增加/减少
我不确定问题是在于模板还是在于ajax部分
阿贾克斯:
$('button').on('click',function(event){
event.preventDefault();
var element=$(this);
$.ajax({
url: $(this).attr("data-href"),
type:'GET',
success:function(response){
// $('#lik').html(response);
// console.log(response);
// alert(response.message);
// alert('Company likes count is now ' + response.likes_count);
// document.getElementById('like-count').innerHTML = response.like_count;
// $('#like_count').html(response.likes_count);
$('#lik').html(response.likes_count);
// element.html(' ' + response)
}
});
});
模板:
<div class="reaction" >
<button type="button" data-href="{% url 'posts:like_post' p.id %}"> <a class="btn text-green" id='lik'><i class="icon ion-thumbsup"></i> </a></button>
<a class="btn text-red"><i class="fa fa-thumbs-down"></i> 0</a>
</div>
views.py
def like_post(request,id):
# id=request.POST.get('psts_id')
# id=float(id)
psts = get_object_or_404(Post, id=id)
is_liked = False
if psts.likes.filter(id=request.user.id).exists():
psts.likes.remove(request.user)
is_liked = False
message = 'You disliked this'
else:
psts.likes.add(request.user)
is_liked = True
message = 'You liked this'
# total=psts.likes.count.all()
x=psts.likes.count()
# x=[x.count() for x in psts.likes.all()]
ctx = {'likes_count':x, 'message': message}
# ctx = {'likes_count':[x.as_dict() for x in psts.likes.all()], 'message': message}
return HttpResponse(json.dumps(ctx), content_type='application/json')
我想确保无论何时任何用户喜欢任何函数,模板都应该得到更新
根据其目的
目前没有回答
相关问题 更多 >
编程相关推荐