【Django】Django4.1.2使用xadmin避坑指南

简介: 【Django】Django4.1.2使用xadmin避坑指南

环境

win10 python3.9.0 django4.1.2

问题一:ImportError: cannot import name ‘six‘ from ‘django.utils‘

解决办法:
如果正常安装了xadmin库的话,six库也会安装,把项目根目录/venv/Lib/site-packages/six.py复制到项目根目录/venv/Lib/site-packages/django/utils下即可。

问题二:ImportError: cannot import name 'ugettext_lazy' from 'django.utils.translation'

分析:
Django已经弃用 ugettext(), ugettext_lazy(), ugettext_noop(), ungettext(), 和 ungettext_lazy()
查看issues

解决办法:
既然选择了高版本Django,就尝试在此版本下解决问题。

它已从Django 4中删除,请使用此选项
from django.utils.translation import gettext_lazy as _

问题三:ImportError: cannot import name ‘ugettext’ from ‘django.utils.translation’

解决办法:
和问题二原因一样,改用from django.utils.translation import gettext_lazy as _, gettext,后续还会遇到几次类似问题,处理方式相同。

问题四:ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding'

解决办法:

# from django.utils.encoding import python_2_unicode_compatible, smart_text
from django.utils.encoding import smart_text
from six import python_2_unicode_compatible

问题五:ImportError: cannot import name 'pretty_name' from 'django.forms.forms'

解决办法:

# from django.forms.forms import pretty_name
from django.utils import formats, six

问题六:ImportError: cannot import name 'force_text' from 'django.utils.encoding'

解决办法:

# from django.utils.encoding import force_text, smart_text, smart_str
from django.utils.encoding import force_str, smart_str
django.utils.encoding.force_text = force_str
django.utils.encoding.smart_text = smart_str

问题七:ImportError: cannot import name 'ungettext' from 'django.utils.translation'

解决办法:

# from django.utils.translation import ungettext
from django.utils.translation import ngettext

问题八:ModuleNotFoundError: No module named 'django.contrib.staticfiles.templatetags'

解决办法:

# from django.contrib.staticfiles.templatetags.staticfiles import static
from django.templatetags.static import static

参考链接

问题九:ImportError: cannot import name 'urlquote' from 'django.utils.http'

解决办法:
http.py文件

from urllib.parse import (
    ParseResult,
    SplitResult,
    _coerce_args,
    _splitnetloc,
    _splitparams,
    scheme_chars,
    quote,
)

dashboard.py文件

# from django.utils.http import urlencode, urlquote
from django.utils.http import urlencode, quote

这个是参考Django2的源码改的,不一定正确,欢迎指正。
好像也有依据

问题十:ImportError: cannot import name 'lookup_needs_distinct' from 'django.contrib.admin.utils'

依据
The undocumented django.contrib.admin.utils.lookup_needs_distinct() function is renamed to lookup_spawns_duplicates().
解决办法:

lookup_needs_distinct替换为lookup_spawns_duplicates

问题十一:ImportError: cannot import name 'FieldDoesNotExist' from 'django.db.models.fields'

解决办法:
pip install django-advanced-filters

# from django.db.models.fields import FieldDoesNotExist
from django.core.exceptions import FieldDoesNotExist

问题十二:ImportError: cannot import name 'SKIP_ADMIN_LOG' from 'import_export.admin'

解决办法:

#from import_export.admin import DEFAULT_FORMATS, SKIP_ADMIN_LOG, TMP_STORAGE_CLASS
from import_export.admin import DEFAULT_FORMATS, ImportMixin, ImportExportMixinBase

#from import_export.admin import DEFAULT_FORMATS, SKIP_ADMIN_LOG, TMP_STORAGE_CLASS
from import_export.admin import DEFAULT_FORMATS, ImportMixin, ImportExportMixinBase

依据

到现在为止,可以正常进行数据库迁移了,已经0:34了,睡觉(¦3[▓▓] 晚安

我本以为搞定了,没想到这个文章还会出Django4.1.2使用xadmin避坑指南(二)

我把改好的xadmin源码上传了一份到GitHub上,希望能够给个star:star:!

Django4.1.2-xadmin

相关文章
|
10月前
|
前端开发 JavaScript Python
【Django】Django4.1.2使用xadmin避坑指南(二)
【Django】Django4.1.2使用xadmin避坑指南(二)
django2使用xadmin打造适合国人的后台管理系统(2)
在django2使用xadmin打造适合国人的后台管理系统(1)中已经集成好了xadmin,那么接下来就开始来使用xadmin以及做一些常用设置。 1.首先设置支持中文,修改settings文件中的 LANGUAGE_CODE = 'zh-hans', TIME_ZONE ='Asia/Shanghai'。
2406 0
|
Python 数据安全/隐私保护 前端开发
django2使用xadmin打造适合国人的后台管理系统(1)
       python火了之后,学习python的人也越来越多了,python做web开发的话,flask、django是比较火的框架了,django是一个比较大的框架,也是一个快速开发利器。
2230 0
|
Python 前端开发 数据库
Python3 | Django后台管理框架Xadmin安装指南
Django是python的重量级web框架,写得少,做得多,非常适合后端开发,它很大的一个亮点是,自带后台管理模块,但它自带的后台管理有点丑,而Xadmin是基于bootstrap开发的一套后台管理框架,界面非常美观,只需几步就可以替换自带的Dja...
2071 0
|
数据库 Python 关系型数据库
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
4天前
|
前端开发 UED Python
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
|
4天前
|
中间件 Python
中间件应用Django Middleware(Python)
中间件应用Django Middleware(Python)
30 6
|
13天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之阿里函数计算中在自定义环境下用debian10运行django,用官方层的python3.9,配置好环境变量后发现自定义层的django找不到了如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
22 3
|
16天前
|
存储 搜索推荐 开发者
django-haystack,具有全文搜索功能的 Python 库!
django-haystack,具有全文搜索功能的 Python 库!
25 0