I have a custom function to check if a user is authorized to do certain functions:
@login_required def checkpermission(request, permiss): username = request.user.username print(f"username is {username}") print(f"User.objects.filter() is {User.objects.filter()}") userobj = User.objects.get(username=username) print(dir(userobj)) print(userobj.user_permissions.all()) print(Permission.objects.filter(group__user=userobj)) perms = getpermissions(userobj) for perm in perms: p = perm.name.lower().replace(" ", "_") if permiss == p: print("Has permission: %s" % p) return True print("No") return False def getpermissions(userobj): if userobj.is_superuser: return Permission.objects.all() return userobj.user_permissions.all() | Permission.objects.filter(group__user=userobj) The problem arises if I write the previous function with decorator: @login_required def getpermissions(userobj): if userobj.is_superuser: return Permission.objects.all() return userobj.user_permissions.all() | Permission.objects.filter(group__user=userobj) In this case, I get the error: 2018-10-31 21:26:51,239 django.request ERROR Internal Server Error: /clinic/joelent/doctors Traceback (most recent call last): File "/home/joel/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/home/joel/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/joel/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/joel/.local/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view return view_func(request, *args, **kwargs) File "/home/joel/myappointments/clinic/views.py", line 2797, in clinicdoctorlist if checkpermission(request, "can_change_doctor") and HasMembership(request, cliniclabel): File "/home/joel/.local/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view return view_func(request, *args, **kwargs) File "/home/joel/myappointments/clinic/views.py", line 2970, in checkpermission perms = getpermissions(userobj) File "/home/joel/.local/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 20, in _wrapped_view if test_func(request.user): AttributeError: 'User' object has no attribute 'user' Why would this be happening? Sincerely yours, Joel G Mathew -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAA%3Diw_94fELQWM873_y6w%2B0S8vCA2xtO44sG45dqMp4DSC8qeQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.