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实现抓取网页并且解析的实例
Sep 20 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
Python3中详解fabfile的编写
Jun 24 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
Django choices下拉列表绑定实例
Mar 13 Python
python实现斗地主分牌洗牌
Jun 22 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 Python
Pytorch中的数据集划分&正则化方法
May 27 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
如何判断php数组的维度
2013/06/10 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
php实现水仙花数示例分享
2014/04/03 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
进程的查看和调度分别使用什么命令
2015/03/25 面试题
个人委托书格式
2014/04/04 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
事业单位聘任报告
2015/03/02 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js