首页 > 解决方案 > Django:Ajas 和反向错误:“str”对象不可调用

问题描述

我有一些代码将返回到我的 urls.py 中定义的 ajax 调用反向 url 我让用户更新页面,然后他们单击提交。当他们单击提交时,他们应该返回到项目列表视图而不是项目更新视图。

视图.py

这会成功返回相同的页面,但这不是我想要的。

return JsonResponse({"status": "success",
        "message": message})

这会产生错误消息"next_url": reverse("item:list"), TypeError: 'str' object is not callable

return JsonResponse({"status": "success",
        "next_url": reverse("item:list"), 
        "message": message})

网页

这是用于路由用户的模板的 ajax:

$.ajax({
    url: '/item/ajax/approve/',
    data: {
      'reply': reply,
      'item': item,
      'user_type': userType,
    },
    type: "POST",
    dataType: 'json',
    success: function (data) {
        var successMsg = data.message 
        if (data.status){
            successMsg = successMsg + "<br/><br/><i class='fa fa-spin fa-spinner'></i> Redirecting..." //<i class> - 'font awesome'
        }

        if (data.next_url){
            if ($.alert){  // if alert message is installed
            $.alert(successMsg)
            } else {
                alert("")
            }
            redirectToNext(data.next_url, 1500)  
        } else {
            location.reload();
        }


    }
  });

标签: ajaxdjango

解决方案


您需要reverse在文件开头导入函数。

from django.urls import reverse


推荐阅读