Django Ajax更新Div而不刷新
Django Ajax Update Div without Refresh
我正在尝试在不刷新页面的情况下更新<strong id="vote_count">
。目前,ajax请求已经发布,但我必须手动刷新页面以更新投票计数。CCD_ 2最初是CCD_ 3模型中的一个函数。
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();
});
});
视图.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
标签不起作用。
相关文章:
- 刷新 Div 内容(仅限本地.html)
- 如何刷新 DIV 而不是页面
- 如何使用随机的不同名称刷新 DIV
- 刷新 DIV 容器
- 如何在jquery(移动)中刷新DIV
- 在自动刷新 DIV 标签内的 PHP 中表单将不起作用
- 在提交 AJAX 表单后刷新 Div 的内容
- 是否可以刷新 DIV 而 DIV 中没有另一个页面
- 使用setInterval刷新Div的InnerText
- 每5秒自动刷新DIV内容代码不起作用
- 如何点击按钮刷新Div内容
- 使用jQuery从5秒到0自动刷新Div
- 如何刷新 DIV 内容
- 使用JQuery自动刷新DIV
- JQuery AJAX刷新Div上的间隔和更改内容上点击
- 10分钟后自动刷新DIV
- 脚本重载或刷新Div单击
- 如何在不刷新索引页的情况下刷新DIV
- 重计算前刷新DIV
- 动态刷新DIV