Django2.1集成xadmin管理后台所遇到的错误集锦,解决填坑
django默认是有一个admin的后台管理模块,但是丑,功能也不齐全,但是大神给我们已经集成好了xadmin后台,我们拿来用即可,但是呢,django已经升级到2.1版本了,xadmin貌似跟不上节奏,那么在集成过程中咱就一步一步填坑吧,这也是一种学习的过程,遇到错误,找到错误的地方,看看django最新升级都修改了那些,去掉了那些,把相应出错的地方替换即可。
xadmin源码地址:https://github.com/sshwsfc/xadmin
下载并解压:

我们用到的是xadmin文件夹,将xadmin复制到项目的根目录,与项目同级别。
安装依赖库:
激活项目的虚拟环境,cd 到解压的 xadmin-master目录,运行一下代码
pip3 install -r requirements.txt
在项目settings.py设置文件中引入:

在项目的urls.py中设置

然后运行:python manage.py makemigrations 建立数据库迁移文件
这个时候就会引出一系列的错误提示
错误一:关联关系ForeignKey引发的错误,打开xadmin文件中的模型文件models.py,
凡是出现关联关系字段的地方全部加上 on_delete=models.CASCADE , 如下图所示:

错误二:模块包名称合并修改引发的错误
错误提示:ModuleNotFoundError: No module named 'django.core.urlresolvers'
这是因为django2.1把from django.core.urlresolvers修改成了django.urls
那么如图所示将 from django.core.urlresolvers import NoReverseMatch, reverse
修改为:from django.urls import NoReverseMatch, reverse

错误三:出现如下错误提示

这是因为,django2.1.1的 forms表单初始化仅一个参数,将 forms.Field.__init__(self, required, widget, label, initial, help_text, *args, **kwargs) 修改为如图所示:

错误四:ImportError: cannot import name 'login' from 'django.contrib.auth.views'

解决办法:
# 将 website.py 中的
from django.contrib.auth.views import login
from django.contrib.auth.views import logout # 修改为
from django.contrib.auth import authenticate, login, logout
错误五:ImportError: cannot import name 'QUERY_TERMS' from 'django.db.models.sql.query'

解决办法:
# django2.1.1版本将xadmin\plugins\filters.py文件中的
from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS # 修改为
from django.db.models.sql.query import LOOKUP_SEP, Query # 在Django2.0版本中把
from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS # 修改为:
from django.db.models.sql.query import LOOKUP_SEP
from django.db.models.sql.constants import QUERY_TERMS
错误六:ModuleNotFoundError: No module named 'django.contrib.formtools' 导入fromtools错误,版本太低

解决方案:
# 卸载旧版本
pip uninstall django-formtools # 安装新版本
pip install django-formtools
错误七:

解决方案:
# 把xadmin\plugins\password.py中的
from django.contrib.auth.views import password_reset_confirm 修改为:
from django.contrib.auth.views import PasswordResetConfirmView
再把位于75行左右 return后的 password_reset_confirm修改为 PasswordResetConfirmView,如下图所示

错误八:AttributeError: 'Settings' object has no attribute 'MIDDLEWARE_CLASSES'

解决办法:
# 将xadmin\plugins\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:
最后运行:python manage.py makemigrations 创建迁移数据文件
再运行:python manage.py migrate 迁移数据库
如果在以上过程中出现类似错误,请依照错误相应修改,错误提示的先后顺序或许不一样,但是请仔细阅读错误提示代码。
Django2.1集成xadmin管理后台所遇到的错误集锦,解决填坑的更多相关文章
- Django2.1集成xadmin管理后台所遇到的错误集锦,解决填坑(二)
django默认是有一个admin的后台管理模块,但是丑,功能也不齐全,但是大神给我们已经集成好了xadmin后台,我们拿来用即可,但是呢,django已经升级到2.1版本了,xadmin貌似跟不上节 ...
- 转载博客(Django2.0集成xadmin管理后台遇到的错误)
转载博客地址:https://blog.csdn.net/yuezhuo_752/article/details/87916995 django默认是有一个admin的后台管理模块,但是丑,功能也不齐 ...
- python框架Django使用xadmin管理后台数据
Django使用xadmin管理后台数据 关注公众号"轻松学编程"了解更多. 作用:xadmin比Django内置的admin更美观.更方便. 一.导入xadmin(第三方库) 方 ...
- django+x-admin管理后台模板开发管理后台案例(设计部分)
使用django+x-admin管理后台模板搭建管理后台 一.环境需求 1.django:3.1 2.python:3.7 3.x-admin:2.2 4.pycharm:2020.3.2 5.ubu ...
- python测试开发django-34.xadmin管理后台
前言 django自带的admin后台管理页面有点丑陋,于是网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码. 注意环境搭配: django 2.1.2 xadmin ...
- 解决Python3.6.5+Django2.0集成xadmin后台点击添加或者内容详情报 list index out of range 的错误
一 问题说明在创建Model的时候,如果存在类型是DateTimeField的字段,则在xadmin后端管理界面里,对该Model进行添加操作的时候,会报list index out of range ...
- 自己用到的解决Python3.6.5+Django2.0集成xadmin后台点击添加或者内容详情报 list index out of range 的错误的办法如下:
Python3.6.5 Django2.0 这是Django版本与xadmin兼容的问题 解决办法如下: 注释掉如下代码: def render(self, name, value, attrs=No ...
- django中怎么使用自定义管理后台xadmin
django中怎么使用自定义管理后台xadmin 2018年05月19日 15:48:08 LH_python 阅读数:1001 首先创建基本的django项目,配置好基本的model ,url, ...
- Django配置后台xadmin管理界面
Django配置后台xadmin管理界面 python版本3.6.5 Django版本1.10.8(刚开始是2.1.5,由于各种错误,改成了低版本) 1.xadmin的安装,下载地址https://g ...
随机推荐
- 机器学习读书会的分享 - Reinforcement Learning: An Introduction 第4-6章
我在机器学习读书会的分享slides,关于DP.MC.TD方法: https://mp.weixin.qq.com/s/r8wZw4iZwFCz0nnakutY3Q 内容如下:
- aop 切面配置
<bean id="userServiceImpl" class="com.bj.aop.xml.before.UserServiceImpl">& ...
- Ini文件格式说明
http://www.cnblogs.com/CUIT-DX037/ 百度百科介绍:ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储 ...
- [Environment Build] 工作中遇到的关于Git的问题
修改已经提交的commit中的author, commit git commit --amend --author 'Your Name <Your Email>' git commit ...
- 谈谈我对MVC的View层实现的理解
MVC框架可以把应用清晰明了地分为三个部分:Model层–数据层,View层–视图层,Controller–逻辑层,Model层负责整合数据,View层负责页面渲染,Controller层负责实现业务 ...
- AngularJS(十):依赖注入
本文也同步发表在我的公众号“我的天空” 依赖注入 依赖注入不是AngularJS独有的概念,而是现代软件开发与架构的范畴,但是在AngularJS中“依赖注入”是其核心思想之一,所以我们专门来学习一下 ...
- strlen()与mb_strlen()的作用分别是什么
strlen和mb_strlen都是用于截取字符串的,其中strlen只针对单字节编码字符 如果是多字节编码字符 如gbk和utf8 使用strlen会出现乱码 此时可以使用mb_strlen(),专 ...
- AngularJS 整理学习
参考博客: https://blog.csdn.net/weixin_33178524/article/details/79179597 https://blog.csdn.net/qq_42128 ...
- 模块详解及import本质
一.模块的定义 用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的Python文件(文件名test.py,对应的模块名:test) 包:用来从逻辑上组织模块的 ...
- Python学习-用户输入和字符串拼接
用户输入和字符串拼接 #用户输入和字符串拼接username=input("username:")age=int(input("Age:")) #转换整数型 ...