Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 就像在评论中一样';t工作并返回json页面响应`{quot;a'u c'u like";:true}`_Django_Django Models_Django Views_Django Forms_Django Templates - Fatal编程技术网

Django 就像在评论中一样';t工作并返回json页面响应`{quot;a'u c'u like";:true}`

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':

我构建了注释系统,当我在第一条注释中单击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':
    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)