Django3.1.7使用Xadmin(只为记录坑)

  1. 使用之前,安装好Django3

  2. 准备好Xadmin
    有好几种方法:
    方法一:pip install xadmin(可能会抛出中文集错误)
    方法二:pip install 本地下载包.zip的路径
    方法三:pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
    (pip install https://github.com/sshwsfc/xadmin/tarball/master)
    安装后,可用pip list 查看版本(Django 3.1.7 + xadmin 0.6.1)

  3. 创建Django项目:
    django-admin startproject 项目名

  4. 修改配置settings.py:
    INSTALL_APPS = [
    ……
    ‘xadmin’,
    ‘crispy_forms’,
    ‘reversion’,
    ]
    这是三个xadmin的依赖包

  5. 在urls.py下进行配置:
    # 导入xadmin应用
    import xadmin
    xadmin.autodiscover()

    from xadmin.plugins import xversion
    xversion.register_models()
    urlpatterns = [
    path(‘admin/’, xadmin.site.urls) # 注意这里是xadmin
    ]

  6. 配置数据库:(可选,毕竟有默认的sqlite3小型数据库,这里我用mysql8,注意最好使用mysql5以上的)
    第一步:在__init__.py加入:
    import pymysql # 导入mysql库,注意要使用pip install pymysql
    pymysql.install_as_MySQLdb() # 设置pymsql为Django默认数据库连接驱动
    同样在settings.py修改配置:
    DATABASES={
    ‘default’: {
    ‘ENGINE’: ‘django.db.backends.mysql’, # 数据库引擎
    ‘NAME’: ‘mydb’, # 数据库名,注意安装好mysql后要建一个数据库
    ‘USER’: ‘root’,
    ‘PASSWORD’: ‘*****’, #数据库密码
    ‘HOST’: ‘localhost’,
    ‘PORT’: 3306
    }
    }

  7. 试着运行会报下错:
    运行:python manage.py runserver 8000
    报错:ImportError: cannot import name ‘six’ from ‘django.utils’ (D:\Python\lib\site-packages\django\utils_init_.py)

在这里插入图片描述
解决:
第一步:在安装目录中找到six.py文件(我的在D:\Python\Lib\site-packages\six.py)
第二步:将其复制到site-packages/django/utils(我的D:\Python\Lib\site-packages\django\utils)
第三步:修改:由上图所示蓝色路径所示,就是报错文件路径,点击进去,修改,如下图:
在这里插入图片描述
8. 解决下一个问题:
报错:ImportError: cannot import name ‘python_2_unicode_compatible’ from ‘django.utils.encoding’
在这里插入图片描述
解决(老规矩,点击上图蓝色路径,进入错误文件修改):
# from django.utils.encoding import python_2_unicode_compatible, 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
在这里插入图片描述
10.
报错(注意:此错误会在多个文件中产生,后续会多次出现,解决方法是一样的,可以全部一起修改):
ModuleNotFoundError: No module named ‘django.core.urlresolvers’
解决:
# from django.core.urlresolvers import reverse
from django.urls import reverse
在这里插入图片描述

报错:
ModuleNotFoundError: No module named ‘django.contrib.staticfiles.templatetags’
在这里插入图片描述
解决:
if ‘django.contrib.staticfiles’ in settings.INSTALLED_APPS:
# from django.contrib.staticfiles.templatetags.staticfiles import static
from django.templatetags.static import static
else:
from django.templatetags.static import static
在这里插入图片描述
12.
报错(注意:也有几处,要一个一个改):
TypeError: init() missing 1 required positional argument: ‘on_delete’
在这里插入图片描述
解决:
在user最后加上外键约束 on_delete=models.CASCADE
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

报错:同10一样:ModuleNotFoundError: No module named ‘django.core.urlresolvers’在这里插入图片描述
在这里插入图片描述

报错:TypeError: init() takes 1 positional argument but 6 were given
在这里插入图片描述
解决:
修改为 forms.Field.init(self),去掉后面参数
在这里插入图片描述

报错:ImportError: cannot import name ‘login’ from ‘django.contrib.auth.views’
在这里插入图片描述
解决:
在这里插入图片描述
注意:此时问题并未完全解决
要先注释掉同文件的current_app(有两处,一处是登录,一处是登出,都为同一文件下):
在这里插入图片描述
仍在同一文件下,修改return(我将LoginView as login,LogoutView as logout):
在这里插入图片描述
在这里插入图片描述

报错: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
在这里插入图片描述
17.
报错:ImportError: cannot import name ‘QUERY_TERMS’ from ‘django.db.models.sql.query’
在这里插入图片描述

解决:
# from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS
from django.db.models.sql.query import LOOKUP_SEP, Query
在这里插入图片描述
同一文件下还有哟!!
在这里插入图片描述

报错:ModuleNotFoundError: No module named ‘requests’
在这里插入图片描述
解决:
这是因为我未安装requests,所以报的错。 pip install requests 安装一下

报错:ImportError: cannot import name ‘FieldDoesNotExist’ from ‘django.db.models’
此错误之前遇到过,但此时文件
在这里插入图片描述
解决:
# from django.db.models import FieldDoesNotExist, Avg, Max, Min, Count, Sum
from django.db.models import Avg, Max, Min, Count, Sum
from django.core.exceptions import FieldDoesNotExist
在这里插入图片描述

报错:ImportError: cannot import name ‘password_reset_confirm’ from ‘django.contrib.auth.views’
在这里插入图片描述

解决:
# from django.contrib.auth.views import password_reset_confirm
from django.contrib.auth.views import PasswordResetConfirmView
在这里插入图片描述

报错:AttributeError: ‘Settings’ object has no attribute ‘MIDDLEWARE_CLASSES’

在这里插入图片描述
注意:此时应进入language.py中修改

解决:
# if settings.LANGUAGES and ‘django.middleware.locale.LocaleMiddleware’ in settings.MIDDLEWARE_CLASSES:
if settings.LANGUAGES and ‘django.middleware.locale.LocaleMiddleware’ in settings.MIDDLEWARE:
在这里插入图片描述

报错: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
在这里插入图片描述
23.
报错:RuntimeError: ‘cryptography’ package is required for sha256_password or caching_sha2_password auth methods
在这里插入图片描述
解决:
pip install cryptography

报错:这个错有点离谱了,
是指数据库的用户权限那里出了问题,发现ROOT用的大写,改了之后就好了,当然,密码,之类的也要保证对。
在这里插入图片描述

最后一个小失误:
本想创建超级用户的说 python manage.py createsuperuser
结果报错:
在这里插入图片描述
在这里插入图片描述

让我先迁移一下,好吧,迁移吧:
在这里插入图片描述

迁移后,再创建:在这里插入图片描述
好了.

  1. 运行,报错:AttributeError: ‘Media’ object has no attribute ‘add_css’(当然,也有add_js的)
    在这里插入图片描述
    解决:老规矩,进入文件:
    在这里插入图片描述

  2. 运行成功:
    在这里插入图片描述

报错:ImportError: cannot import name ‘javascript_catalog’ from ‘django.views.i18n’
在这里插入图片描述
解决:
第一步:在settings.py加django.config:
在这里插入图片描述
第二步:
修改文件(老规矩,进入蓝色路径下的文件修改xadmin/sites.py):
from django.views.i18n import JavaScriptCatalog
return JavaScriptCatalog.as_view(packages=[‘django.conf’, ‘xadmin’])(request)
在这里插入图片描述

28.补充:Xadmin汉化一下:
同样在settings.py下面:
LANGUAGE_CODE = ‘zh-Hans’ #设置中文
TIME_ZONE = ‘Asia/Shanghai’ #设置时区
在这里插入图片描述

添加数据表的时候,报错(好几个文件存在这个问题): AttributeError: 'AutoField' object has no attribute 'rel'

在这里插入图片描述

解决:
将所有存在对应的rel的改为remote_field即可。

在这里插入图片描述

注意:可能仍存在其他错误需要慢慢摸索一哈!!

【参考博客】
https://blog.csdn.net/weixin_39418139/article/details/100554491
https://www.jianshu.com/p/3a3afda82f72
https://blog.csdn.net/weixin_46002708/article/details/107703034
https://blog.csdn.net/mengyanyuan8023/article/details/90201458

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被高端技术封印的小柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值