换成Django4版本使用xadmin真是需要巨大勇气。
win10 python3.9.0 django4.1.2
解决办法:
如果正常安装了xadmin库的话,six库也会安装,把项目根目录/venv/Lib/site-packages/six.py
复制到项目根目录/venv/Lib/site-packages/django/utils
下即可。
分析:
Django已经弃用 ugettext(), ugettext_lazy(), ugettext_noop(), ungettext(), 和 ungettext_lazy()
查看issues
解决办法:
既然选择了高版本Django,就尝试在此版本下解决问题。
它已从Django 4中删除,请使用此选项
from django.utils.translation import gettext_lazy as _
解决办法:
和问题二原因一样,改用from django.utils.translation import gettext_lazy as _, gettext
,后续还会遇到几次类似问题,处理方式相同。
解决办法:
# 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
解决办法:
# from django.forms.forms import pretty_name
from django.utils import formats, six
解决办法:
# 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
解决办法:
# from django.utils.translation import ungettext
from django.utils.translation import ngettext
解决办法:
# from django.contrib.staticfiles.templatetags.staticfiles import static
from django.templatetags.static import static
解决办法:
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的源码改的,不一定正确,欢迎指正。
好像也有依据。
依据:
The undocumented django.contrib.admin.utils.lookup_needs_distinct() function is renamed to lookup_spawns_duplicates().
解决办法:
lookup_needs_distinct替换为lookup_spawns_duplicates
解决办法:
先pip install django-advanced-filters
# from django.db.models.fields import FieldDoesNotExist
from django.core.exceptions import FieldDoesNotExist
解决办法:
#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⭐️!