Rimush
@Rimush

Откуда берется данная ошибка?

Версия Django 4.1.1
Перехожу в админке по ссылке "Пользователи и группы" и получаю:

Internal Server Error: /admin/auth/
Traceback (most recent call last):
  File "C:\rep\site\pkp_venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\rep\site\pkp_venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\rep\site\pkp_venv\lib\site-packages\django\contrib\admin\sites.py", line 261, in wrapper
    return self.admin_view(view, cacheable)(*args, **kwargs)
  File "C:\rep\site\pkp_venv\lib\site-packages\django\utils\decorators.py", line 133, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "C:\rep\site\pkp_venv\lib\site-packages\django\views\decorators\cache.py", line 62, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "C:\rep\site\pkp_venv\lib\site-packages\django\contrib\admin\sites.py", line 242, in inner
    return view(request, *args, **kwargs)
  File "C:\rep\site\pkp_venv\lib\site-packages\django\contrib\admin\sites.py", line 569, in app_index
    app_list = self.get_app_list(request, app_label)
TypeError: MyAdminSite.get_app_list() takes 2 positional arguments but 3 were given


Я понимаю что ругается на количество аргументов передаваемых в функцию.
Но я код самого джанго не трогал, так откуда берётся эта ошибка?
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
Rimush
@Rimush Автор вопроса
Понял в чем косяк.
Использовал костыль в admin.py для своей сортировки приложений в меню:

class MyAdminSite(AdminSite):
    def get_app_list(self, request):
        app_dict = self._build_app_dict(request)
        app_list = sorted(app_dict.values(), key=lambda x: x['name'].lower())
        return app_list

В get_app_list(self, request): как раз и не хватает параметра. Сделал:

class MyAdminSite(AdminSite):
    def get_app_list(self, request, app_label=None):
        app_dict = self._build_app_dict(request)
        app_list = sorted(app_dict.values(), key=lambda x: x['name'].lower())
        return app_list
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы