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实现包含min函数的栈
Apr 29 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
python对日志进行处理的实例代码
Oct 06 Python
python的turtle库使用详解
May 10 Python
图文详解python安装Scrapy框架步骤
May 20 Python
python读写配置文件操作示例
Jul 03 Python
python3中的eval和exec的区别与联系
Oct 10 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
python实现简单的tcp 文件下载
Sep 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中用hash实现的数组
2011/07/17 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
AJAX的使用方法详解
2017/04/29 PHP
YUI模块开发原理详解
2013/11/18 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
彻底理解Python list切片原理
2017/10/27 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
自主招生教师推荐信
2014/05/10 职场文书
2014年度党员自我评议
2014/09/13 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
python 单机五子棋对战游戏
2022/04/28 Python