ImportError:无法导入名称“ugettext_lazy”

32 python django django-settings installed-applications python-3.x

我正在尝试安装西装,我输入了以下命令: pip install https://github.com/darklow/django-suit/tarball/v2 并编写了以下代码:

from suit.apps import DjangoSuitConfig
class SuitConfig(DjangoSuitConfig) :
    layout = 'horizontal'
Run Code Online (Sandbox Code Playgroud)

并添加了它:

INSTALLED_APPS = [
    'products.apps.SuitConfig',
     .....]
Run Code Online (Sandbox Code Playgroud)

但是当我添加最后一个代码时,我遇到了这个错误:

InvalidTemplateLibrary:指定的模板库无效。尝试加载 'suit.templatetags.suit_menu' 时引发导入错误:无法从 'django.utils.translation' 导入名称 'ugettext_lazy' (C:\Users\hp\environments\env3\lib\site-packages\django\utils\翻译_初始化_.py)

注意:Django 4.01

小智 35

此错误属于 Django 版本。如果你想使用 Django 4.* 你需要找到:

from django.utils.translation import ugettext_lazy as _

并更改为:

from django.utils.translation import gettext_lazy as _

快乐编码:)


小智 11

正想问版本,但注释(django 4.01)有帮助。\'ugettext_lazy\' 似乎也被您尝试使用的应用程序使用。

\n

\'ugettext_lazy\' 已在 django 3+ 中弃用,因此您\xe2\x80\x99t 无法在 django 版本 >= 3 中使用它。\n https://code.djangoproject.com/ticket/30165

\n

  • 我已将代码从 from django.utils.translation import ugettext_lazy as _ 更改为 from django.utils.translation import gettext_lazy as _ ,它工作得很好 (6认同)

Lia*_*Wei 7

我在使用 django-hitcount 时也遇到了同样的问题

视图.py

from hitcount.views import HitCountDetailView

class PostDetailView(HitCountDetailView):
model = Post
template_name = 'blog/post.html'
slug_field = "slug"
count_hit = True
Run Code Online (Sandbox Code Playgroud)

设置.py

INSTALLED_APPS = [
'hitcount',
 .....]
Run Code Online (Sandbox Code Playgroud)

一个答案是ugettext_lazy 已在 Django 4.0 57 中删除。请使用 gettext_lazy 代替 “”

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

我把这行代码放在views.py中,并得到了同样的错误。