我面临此错误"ImportError: cannot import name 'smart_text' from 'django.utils.encoding'"



我正试图使用django-tagging包在我的项目上实现标签。
下面是完整的错误:

File "C: userDesktopmodels.py",第9行,in从标记。字段导入TagField文件"C:UsersDesktopenvlibsite-packagestaggingfields.py",第9行,在从标记。表单导入TagField作为TagFormField文件"C:UsersDesktopenvlibsite-packagestaggingforms.py",第8行,在从标记。models import标签文件"C:UsersDesktopenvlibsite-packagestaggingmodels.py",第8行,在从django.utils.encoding导入smart_textimportterror:无法从django.utils中导入名称smart_text。编码"("C: Users<User&gt> & lt; App> django env lib 网站 跑龙套 encoding.py)

models.py

class ModelName(models.Model):
.....
tags = TagField()

使用django.VERSION (4, 2, 0, 'final', 0)

此错误是由于Django 4.0.21django.utils.encoding中的smart_text被移除造成的。当一个依赖于smart_text的包与Django 4.0.2 or later1一起使用时,会引发错误消息。

解决方案在settings.py文件中添加以下代码:

import django
from django.utils.encoding import smart_str
django.utils.encoding.smart_text = smart_str