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操作CouchDB的方法
Oct 08 Python
初步解析Python中的yield函数的用法
Apr 03 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
Python中set与frozenset方法和区别详解
May 23 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
Python进程间通信之共享内存详解
Oct 30 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
如何基于Django实现上下文章跳转
Sep 16 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
python 实现批量图片识别并翻译
Nov 02 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
python用户管理系统的实例讲解
2017/12/23 Python
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
Python线程同步的实现代码
2018/10/03 Python
详解python调用cmd命令三种方法
2019/07/08 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
如何通过python检查文件是否被占用
2020/12/18 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
师范大学毕业自我鉴定
2013/11/21 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
社会发展项目建议书
2014/08/25 职场文书
交通工程专业推荐信
2014/09/06 职场文书
停车位租赁协议书
2014/09/24 职场文书
小学校园广播稿
2015/08/18 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers