ImportError: cannot import name 'ugettext_lazy' from 'django.utils.translation'

Я импортировал from rest_auth.views import LoginView и пытаюсь реализовать login api, и я никогда не импортировал ugettext_lazy напрямую.


from rest_auth.views import LoginView
from django.contrib.auth import authenticate, login, logout
from .serializers import LoginUserSerializer

class Login(LoginView):
    def post(self, request, *args, **kwargs):
        serializer = LoginUserSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        login(request, user)
        return super().post(request, format=None)

Я получил эту проблему

File "C:\Users\v_kum\Documents\My Project\wshp\app_mypage\urls.py", line 4, in <module> from .login import Login File "C:\Users\v_kum\Documents\My Project\wshp\app_mypage\login.py", line 1, in <module> from rest_auth.views import LoginView File "C:\Users\v_kum\Documents\myenv\lib\site-packages\rest_auth\views.py", line 9, in <module> from django.utils.translation import ugettext_lazy as _ ImportError: cannot import name 'ugettext_lazy' from 'django.utils.translation' (C:\Users\v_kum\Documents\myenv\lib\site-packages\django\utils\translation\__init__.py)

Я прочитал другие ответы и большинство из них предлагают перейти с версии django 4 на 3. Есть ли другие способы решить эту проблему или другие предложения по реализации login api?

pip по умолчанию устанавливает django 4, а django-user-session, похоже, не совместим с Django 4.0, который не имеет ugettext_lazy

Вы можете устранить проблему, понизив версию django до 3.2, пока 4.0 не будет поддерживаться должным образом.

pip install django==3.2 

Это временное обходное решение проблемы.

ugettext_lazy был удален в Django 4. Вместо него я использую gettext_lazy: from django.utils.translation import gettext_lazy as _

Вернуться на верх