Python 与 Django 导入错误,RegistrationSupplementBase 无法导入名称“ugettext_lazy”

La *_*Fon 5 python django importerror django-registration python-3.6

我正在更新一个非常旧的 Django 项目并尝试使用,RegistrationSupplementBase但在导入时出现以下错误:

File "/home/projectmachine/Desktop/project_rebuild/projectname/models.py", line 11, in <module>
from registration.supplements.base import RegistrationSupplementBase
File "/home/projectmachine/.local/share/virtualenvs/projectname-QrYA9Qp-/lib/python3.6/site-packages/registration/supplements/base.py", line 9, in <module>
    from django.utils.text import ugettext_lazy as _
ImportError: cannot import name 'ugettext_lazy'
Run Code Online (Sandbox Code Playgroud)

我不明白出了什么问题。看来安装的依赖项有问题。我正在使用 Django 2.2django-inspectional-registration 0.6.2

这是我导入课程的方式:

from registration.supplements.base import RegistrationSupplementBase

Wil*_*sem 22

我不明白出了什么问题。看来安装的依赖项有问题。我正在使用 Django 2.2 和django-inspectional-registration0.6.2

该函数已移至django.utils.translation模块中,因此您可以使用以下命令导入它:

from django.utils.translation import ugettext_lazy as _
Run Code Online (Sandbox Code Playgroud)

基于Django 弃用时间表[Django-doc],将在ugettext_lazy中删除。您可以使用:gettext_lazy

from django.utils.translation import gettext_lazy as _
Run Code Online (Sandbox Code Playgroud)

然而,根据GitHub 存储库django-inspectional-registration,该项目不再活跃:最新提交是在 2016 年 11 月。您可以尝试更新该项目,但也许最好寻找以类似方式工作的替代包。

  • 感谢您的帮助!我会考虑其他选择。 (2认同)