导入错误:无法从“django.utils.translation”导入名称“ugettext”

问题描述 投票:0回答:2

我安装了djangorestframework如下图:

pip install djangorestframework -jwt

然后,我使用了

rest_framework_jwt.views
,如下所示:

from rest_framework_jwt.views import (
    obtain_jwt_token, 
    refresh_jwt_token, 
    verify_jwt_token
)
...
    path('auth-jwt/', obtain_jwt_token),
    path('auth-jwt-refresh/',refresh_jwt_token),
    path('auth-jwt-verify/', verify_jwt_token),
...

但是,我收到以下错误:

导入错误:无法从“django.utils.translation”导入名称“ugettext”

那么,我该如何解决这个错误呢?

python django authentication jwt django-rest-framework-jwt
2个回答
5
投票

从 .serializers 导入 ( 文件“*\lib\site-packages est_framework_jwt\serializers.py”,第 7 行,在 从 django.utils.translation 导入 ugettext as _
ImportError:无法从 'django.utils.translation' 导入名称 'ugettext' (c:\users\dell\downloads\djangoEnvs\djangoEnv\lib\site-packages\django\utils ranslation_init_.py)

解决上述问题有两种方法:

方式1:(不推荐的方法)
步骤:

  1. 打开回溯中的最后一个文件(\lib\site-packages est_framework_jwt\serializers.py) :

  2. 在此文件中,将 ugettext 替换为 --> gettext

  3. 享受编码的乐趣!!! :)

更换前:
从 django.utils.translation 导入 ugettext as _

更换后:
从 django.utils.translation 导入 gettext as _

方式2:(推荐方法)

步骤是:

  1. 打开settings.py(项目文件夹)
  2. 在 settings.py 顶部输入以下导入
    import django
    from django.utils.translation import gettext
    django.utils.translation.ugettext = gettext
    
  3. 享受编码的乐趣!!!! :)

0
投票

升级 djangorestframework-jwt 将解决该错误:

pip install djangorestframework-jwt --upgrade
© www.soinside.com 2019 - 2024. All rights reserved.