繁体   English   中英

没有刷新的Django Ajax Update Div

[英]Django Ajax Update Div without Refresh

我正在尝试更新<strong id="vote_count">而无需刷新页面。 目前,ajax请求已发布,但是我必须手动刷新到页面以更新投票计数。 recommendation.get_total_votes最初是recommendation模型中的一个函数。

html

<div id="vote_count">Vote Count: {{ recommendation.get_total_votes }}</div>
<br>
<button class="upvotes" data-recommendation="{{ recommendation.id }}"   class="btn btn-primary" type="button">
    <span class="glyphicon glyphicon-thumbs-up"></span>
    Upvote1
</button>

ajax.js

$(document).on("click", ".upvotes", function(){
    console.log('my message');
    var recommendationid = $(this).attr("data-recommendation");
    $.post('/upvote/', {recommendation_id: recommendationid}, function(data){
            console.log('my message1');
            $('#vote_count').html(data);
            $('#upvotes').hide();
    });
});

views.py

@csrf_exempt
@login_required
def upvote(request):
    recommendation_id = None
    if request.method == 'POST':
        recommendation_id = request.POST['recommendation_id']
    get_total_votes = 0
    if recommendation_id:
        recommendation = coremodels.Recommendation.objects.get(id=int(recommendation_id))
        user = request.user
        recommendation.votes.up(user)
        get_total_votes = recommendation.votes.count()
    return HttpResponse(get_total_votes)

models.py(编辑):

class Recommendation(models.Model):
    topic = models.ForeignKey(Topic)
    user = models.ForeignKey(User)
    title = models.CharField(max_length=300)
    votes = VotableManager()

    def get_total_votes(self):
        total = self.votes.count()
        return int(total)

感谢您的所有麻烦解决。 我可以通过更改来解决此问题

$('#vote_count').html(data);
$('#upvotes').hide();

$('.vote_count').html(data);
$('.upvotes').hide();

并在HTML中使用class而不是id标记。 仍然不确定为什么id标签不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM