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实现的二维码生成小软件
Jul 11 Python
Python3.2中Print函数用法实例详解
May 19 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
Python中static相关知识小结
Jan 02 Python
python如何使用unittest测试接口
Apr 04 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python 负数取模运算实例
Jun 03 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
python中K-means算法基础知识点
Jan 25 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
python中validators库的使用方法详解
Sep 23 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 反向排序和随机排序代码
2010/06/30 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
apache集成php7.3.5的详细步骤
2019/06/20 PHP
JavaScript之自定义类型
2012/05/04 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
shiro授权的实现原理
2017/09/21 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
Python封装原理与实现方法详解
2018/08/28 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
struct和class的区别
2015/11/20 面试题
工程业务员工作职责
2013/12/07 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
国际商务专业求职信
2014/07/15 职场文书
结对共建协议书
2014/08/20 职场文书
授权委托书怎么写
2014/09/25 职场文书
公司财务部岗位职责
2015/04/14 职场文书
员工旷工检讨书
2015/08/15 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
导游词之安徽九华山
2019/09/18 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
Python socket如何解析HTTP请求内容
2022/02/12 Python