我想在管理面板中有图表,我安装了django-admin-charts
包,上面写着将这些添加到settings.py
中
INSTALLED_APPS = (
'admin_tools_stats', # this must be BEFORE 'admin_tools' and 'django.contrib.admin'
'django_nvd3',
)
但是,在添加它之后,它会产生以下错误:
ImportError: cannot import name 'smart_text' from 'django.utils.encoding' (E: \ test1 \ venv1 \ lib \ site-packages \ django \ utils \ encoding.py)
我搜索了一下,但没有找到多少关于smart_text的东西!可能是Django版本4或PythonVersion3.10.3有问题吗?
发布于 2022-05-27 07:58:13
这是因为django管理图表需要smart_text,而在django 4中,smart_text被从utils/编码中删除,因此解决这个问题的更好方法是将此代码添加到settings.py文件中。
import django
from django.utils.encoding import smart_str
django.utils.encoding.smart_text = smart_str
发布于 2022-05-04 10:26:38
我仔细研究了一下,问题似乎是Django版本。smart_text
函数不在django/utils/encoding.py
文件中。我将级别从4.0.2降到3.2.13,将PyMemcacheCache设置为settings.py中的默认缓存,它可以工作。在我的情况下,降级是不能接受的Django。3.2.13不支持redis缓存,但它可能会对您有所帮助。让我们希望Django -管理图表将为Django 4.0添加支持。
发布于 2022-09-19 15:11:34
当我们从Django 2.2版本切换到Django 4版本时,我得到了这个错误。有一个图书馆没有升级。通过在项目范围下搜索"django.utils.encoding导入smart_text“语句的用法,我发现了这一点。
当我将django-wkhtmltopdf库从3.3.0升级到3.4.0后,这个问题就解决了。
检查是否有任何依赖库,并按上面的方式升级以修复此问题。
https://stackoverflow.com/questions/71589827
复制相似问题