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 _