Skip to content

Django 5.0.6 compatibility #18

@LokkiDog

Description

@LokkiDog

An error occurs when checking form fields for changes (as far as I understand it).

Django==5.0.6
django-access==0.1.2b2

The error is in the file access/admin.py 498

perm = bool(manager.apply_able(ability, obj.__class__.objects.filter(id=obj.id), request).exists()))

manager.apply_able(ability, obj.__class__.objects.filter(id=obj.id), request) - already gives bool value, exists() - unnecessary

123

Here is the error trace:

Traceback (most recent call last):
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 716, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\utils\decorators.py", line 188, in _view_wrapper
    result = _process_exception(request, e)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\utils\decorators.py", line 186, in _view_wrapper
    response = view_func(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\views\decorators\cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\sites.py", line 240, in inner
    return view(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 1948, in change_view
    return self.changeform_view(request, object_id, form_url, extra_context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\utils\decorators.py", line 48, in _wrapper
    return bound_method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\utils\decorators.py", line 188, in _view_wrapper
    result = _process_exception(request, e)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\utils\decorators.py", line 186, in _view_wrapper
    response = view_func(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 1804, in changeform_view
    return self._changeform_view(request, object_id, form_url, extra_context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 1838, in _changeform_view
    fieldsets = self.get_fieldsets(request, obj)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\apps\users\admin.py", line 134, in get_fieldsets
    fields = self.get_fields(request, obj=obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\apps\users\admin.py", line 147, in get_fields
    fields = list(super(AccessUserAdmin, self).get_fields(request, obj)) or []
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 395, in get_fields
    form = self._get_form_for_get_fields(request, obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 786, in _get_form_for_get_fields
    return self.get_form(request, obj, fields=None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\auth\admin.py", line 98, in get_form
    return super().get_form(request, obj, **defaults)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\django\contrib\admin\options.py", line 799, in get_form
    readonly_fields = self.get_readonly_fields(request, obj)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\apps\users\admin.py", line 83, in get_readonly_fields
    readonly_fields = super(AccessUserAdmin, self).get_readonly_fields(request, obj) or []
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\access\admin.py", line 241, in get_readonly_fields
    if not self.has_basic_change_permission(request, obj):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\access\admin.py", line 204, in has_basic_change_permission
    return self._check_request_object_ability(obj, 'changeable', request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\izvekov\Projects\cliphar_crm\.venv\Lib\site-packages\access\admin.py", line 498, in _check_request_object_ability
    perm = bool(manager.apply_able(ability, obj.__class__.objects.filter(id=obj.id), request).exists())
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'exists'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions