代码之家  ›  专栏  ›  技术社区  ›  Jhon Caylog

使用django框架的Python-您没有执行此操作错误的权限

  •  0
  • Jhon Caylog  · 技术社区  · 6 年前

    <button ng-click="main.verifyCompany(company,true)" ng-show="company.is_verified" class="btn btn-primary btn-sm">
                                    <i class="fas fa-thumbs-up"></i> Approve
                                </button>
    

    FE(角度)

    me.verifyCompany = function (company, verify) {
    
            if (verify) {
                var message = "Do you really want to activate job posting and other features  for this business account?. Doing so will send an email notification."
            } else {
                var message = "Deactivate posting for this account?."
            }
    
            confirmSweet.ask(message).then(function (response) {
                if (response) {
                    var filter = {}
                    filter.id = company.id
                    filter.verify = verify
                    AdminService.verify_company(me, filter).then(function (response) {
                        if (response.status == "200") {
                            console.log("Response", response.status)
                            me.get_companies()
                        }
                    })
                }
            });
    
        }
    

    PYTHON代码

    class VerifyCompany(APIView):
    
        authentication_classes = (TokenAuthentication,)
        permission_classes = (IsAuthenticated,IsCompany,IsAdmin,)
    
        def get(self, request,company_id):
    
            data = request.data
            verify = request.GET["verify"]
            verify = True if verify == "true" else False
            company_ins = Company.objects.get(id=company_id)
            company_ins.is_verified = verify
            company_ins.save()
    
            data = {}
            data["email"] = company_ins.user.email
            print("Ang response data")
            if verify:
                email_ins = Email()
                c_task.delay(email_ins.verification_business_success, data)
    
    
            return Response("Company status has been updated.", status=status.HTTP_200_OK)
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   bkawan    6 年前

    通常,当权限检查失败时,会返回“403禁止”或“401未授权”。 那么在这种情况下,你应该检查一下

    • 请求未成功,403将成功。返回。在这种情况下,检查 Token 用户的
    • 请求成功,但权限被拒绝。将返回403 在这种情况下,您应该检查用户是否提供了 permissions 你在权限类中提到过

    permissions

    例子, 假设用户是 约翰

    permission_classes = (IsAuthenticated,IsCompany,IsAdmin,)

    那么john必须是用户类型的公司和管理员