Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)


Posted in Python onDecember 20, 2018

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

xadmin源码地址:https://github.com/sshwsfc/xadmin

下载并解压:

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

我们用到的是xadmin文件夹,将xadmin复制到项目的根目录,与项目同级别。

安装依赖库:

激活项目的虚拟环境,cd 到解压的 xadmin-master目录,运行一下代码

pip3 install -r requirements.txt

在项目settings.py设置文件中引入:

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

在项目的urls.py中设置

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

然后运行:python manage.py makemigrations 建立数据库迁移文件

这个时候就会引出一系列的错误提示

错误一:关联关系ForeignKey引发的错误,打开xadmin文件中的模型文件models.py,凡是出现关联关系字段的地方全部加上 on_delete=models.CASCADE , 如下图所示:

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

错误二:模块包名称合并修改引发的错误

错误提示:ModuleNotFoundError: No module named 'django.core.urlresolvers'

这是因为django2.1把from django.core.urlresolvers修改成了django.urls

那么如图所示将fromdjango.core.urlresolversimportNoReverseMatch,reverse

修改为:from django.urls import NoReverseMatch, reverse

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

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

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

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

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

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

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

解决办法:

# 将 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集成xadmin管理后台所遇到的错误集锦(填坑)

解决办法:

# 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错误,版本太低

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

解决方案:

# 卸载旧版本
pip uninstall django-formtools

# 安装新版本
pip install django-formtools

错误七:

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

解决方案:

# 把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,如下图所示

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

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

Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

解决办法:

# 将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 迁移数据库

如果在以上过程中出现类似错误,请依照错误相应修改,错误提示的先后顺序或许不一样,但是请仔细阅读错误提示代码。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python性能优化的20条建议
Oct 25 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
python导入坐标点的具体操作
May 10 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
python opencv捕获摄像头并显示内容的实现
Jul 11 Python
简单了解python的一些位运算技巧
Jul 13 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
Python更换pip源方法过程解析
May 19 Python
python中的测试框架
Nov 13 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 #Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 #Python
python 读取竖线分隔符的文本方法
Dec 20 #Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 #Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 #Python
Python 判断奇数偶数的方法
Dec 20 #Python
5分钟 Pipenv 上手指南
Dec 20 #Python
You might like
一个MYSQL操作类
2006/11/16 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
python中property属性的介绍及其应用详解
2019/08/29 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
汽车驾驶求职信
2013/10/25 职场文书
关于迟到的检讨书
2014/01/26 职场文书
班级入场式解说词
2014/02/01 职场文书
超市国庆节促销方案
2014/02/20 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
工资证明范本
2015/06/12 职场文书
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS