JESLIN
JESLIN

Reputation: 169

TypeError: 'str' object is not callable python3

def SaveRoles(request):
    if 'user_name' in request.session:
        if request.method == "POST":
            user_roles = request.POST['user_roles']
            user_permission_level = request.POST['user_permission_level']
            user_role_code = request.POST['user_role_code']
            code = user_roles(user_roles=user_roles, user_permission_level=user_permission_level, user_role_code=user_role_code)
            print("qqqqqq", code)
            try:
                model_status = code.save()
            except Exception as e:
                print("exception occured", e)
                return render(request, 'administrator/add_role.html', {'message': 'Oops some error occured'})
        if model_status == None:
            role = user_roles.objects.all()

            return HttpResponseRedirect('http://'+request.get_host()+'/admin/role-list/',{'message': 'Role added successfully','code': code})
        else:
            return HttpResponseRedirect('http://'+request.get_host()+'/admin/role-list/')
    else:
        return HttpResponseRedirect('/admin/')

When I am running this function I got the

TypeError: 'str' object is not callable

I searched all my code and I don't even use the word str anywhere in my project But I cant figure out the error

Upvotes: 1

Views: 1323

Answers (1)

Rakesh
Rakesh

Reputation: 82785

user_roles is a string because you are assigning the value of request.POST['user_roles']. You probably need to change.

user_roles = request.POST['user_roles']

to

user_roles_val = request.POST['user_roles']

Ex:

def SaveRoles(request):
    if 'user_name' in request.session:
        if request.method == "POST":
            user_roles_val = request.POST['user_roles']    #Update
            user_permission_level = request.POST['user_permission_level']
            user_role_code = request.POST['user_role_code']
            code = user_roles(user_roles=user_roles_val, user_permission_level=user_permission_level, user_role_code=user_role_code)   #Update
            print("qqqqqq", code)
            try:
                model_status = code.save()
            except Exception as e:
                print("exception occured", e)
                return render(request, 'administrator/add_role.html', {'message': 'Oops some error occured'})
        if model_status == None:
            role = user_roles.objects.all()

            return HttpResponseRedirect('http://'+request.get_host()+'/admin/role-list/',{'message': 'Role added successfully','code': code})
        else:
            return HttpResponseRedirect('http://'+request.get_host()+'/admin/role-list/')
    else:
        return HttpResponseRedirect('/admin/')

Upvotes: 1

Related Questions