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条件和循环的使用方法
Nov 01 Python
python3图片转换二进制存入mysql
Dec 06 Python
python开发之for循环操作实例详解
Nov 12 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
Django与JS交互的示例代码
Aug 23 Python
Python 实现12306登录功能实例代码
Feb 09 Python
python实现比较文件内容异同
Jun 22 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
基于Python实现用户管理系统
Feb 26 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
Python pysnmp使用方法及代码实例
Aug 24 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
asp.net和php的区别点总结
2019/10/10 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
python实现中文转换url编码的方法
2016/06/14 Python
判断网页编码的方法python版
2016/08/12 Python
简单实现python进度条脚本
2017/12/18 Python
python查看列的唯一值方法
2018/07/17 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
Python如何定义接口和抽象类
2020/07/28 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
Ajax的工作原理
2015/12/04 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
班级活动策划书
2014/02/06 职场文书
一年级评语大全
2014/04/23 职场文书
力学专业求职信
2014/07/23 职场文书
老干部工作先进事迹
2014/08/17 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android