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中使用pngquant压缩png图片的教程
Apr 09 Python
Python random模块用法解析及简单示例
Dec 18 Python
python os.path模块常用方法实例详解
Sep 16 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
Python实现CAN报文转换工具教程
May 05 Python
PyTorch在Windows环境搭建的方法步骤
May 12 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
python for循环赋值问题
Jun 03 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
DC动漫人物排行
2020/03/03 欧美动漫
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
JS定时器实例
2013/04/17 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
Python 字符串操作方法大全
2014/03/11 Python
python判断windows隐藏文件的方法
2014/03/21 Python
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
django admin组件使用方法详解
2019/07/19 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
2014年工商所工作总结
2014/12/09 职场文书
委托书格式要求
2015/01/28 职场文书
护林员个人总结
2015/03/04 职场文书
工作简历的自我评价
2019/05/16 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS