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 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
浅析Python的Django框架中的Memcached
Jul 23 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
python处理大日志文件
Jul 23 Python
Django中create和save方法的不同
Aug 13 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
浅析python内置模块collections
Nov 15 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
python中pandas对多列进行分组统计的实现
Jun 18 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
javascript removeChild 使用注意事项
2009/04/11 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
学习vue.js计算属性
2016/12/03 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
vscode 远程调试python的方法
2017/12/01 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
经典c++面试题四
2015/05/14 面试题
活动策划邀请函
2014/02/06 职场文书
主管会计岗位责任制
2014/02/10 职场文书
天网工程实施方案
2014/03/26 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
2014年度考核工作总结
2014/12/24 职场文书
研究生导师推荐信
2015/03/25 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python