Django 就像在评论中一样';t工作并返回json页面响应`{quot;a'u c'u like";:true}`
我构建了注释系统,当我在第一条注释中单击like时,like成功显示,但当我进入下一条注释时,它返回JSON响应页面Django 就像在评论中一样';t工作并返回json页面响应`{quot;a'u c'u like";:true}`,django,django-models,django-views,django-forms,django-templates,Django,Django Models,Django Views,Django Forms,Django Templates,我构建了注释系统,当我在第一条注释中单击like时,like成功显示,但当我进入下一条注释时,它返回JSON响应页面{“a___-like”:true},而不是like出现,范围中的like计数也不起作用(count)。我在MPTTModel上建立我的评论系统 我的看法 def add_like_to_comment(request, id): comment = Comment.objects.get(id=id) data = {} if request.method == 'POST':
{“a___-like”:true}
,而不是like出现,范围中的like计数也不起作用(count)。我在MPTTModel上建立我的评论系统
我的看法
def add_like_to_comment(request, id):
comment = Comment.objects.get(id=id)
data = {}
if request.method == 'POST':
account = request.user
if comment.likes.filter(id=account.id).exists():
comment.likes.remove(account)
a_c_like = False
else:
comment.likes.add(account)
a_c_like = True
data["a_c_like"] = a_c_like
print(data)
return JsonResponse(data)
我的网址
path('comment/like/<int:id>/like', add_like_to_comment, name='add_like_to_comment'),
您正在使用“响应.计数”,但未传递计数值
在views.py中添加数据[“count”]=comment.likes.count()
例如:
def add_like_to_comment(request, id):
comment = Comment.objects.get(id=id)
data = {}
if request.method == 'POST':
account = request.user
if comment.likes.filter(id=account.id).exists():
comment.likes.remove(account)
a_c_like = False
else:
comment.likes.add(account)
a_c_like = True
data["a_c_like"] = a_c_like
data["count"] = comment.likes.count()
print(data)
return JsonResponse(data)
$("#comment-like-form").submit(function(e){
e.preventDefault();
var form = $(this);
let url = form.attr("action");
$.ajax({
type: "POST",
url: url,
data: form.serialize(),
dataType: "json",
success: function(response) {
var btn = form.find("button[type='submit']");
if (response.a_c_like) {
btn.css("color", "red");
} else {
btn.css("color", "#aaaaaa");
}
btn.find("span").text(response.count)
}
})
})
def add_like_to_comment(request, id):
comment = Comment.objects.get(id=id)
data = {}
if request.method == 'POST':
account = request.user
if comment.likes.filter(id=account.id).exists():
comment.likes.remove(account)
a_c_like = False
else:
comment.likes.add(account)
a_c_like = True
data["a_c_like"] = a_c_like
data["count"] = comment.likes.count()
print(data)
return JsonResponse(data)