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自定义解析简单xml格式文件的方法
May 11 Python
python类继承用法实例分析
May 27 Python
使用Python对Csv文件操作实例代码
May 12 Python
python实现m3u8格式转换为mp4视频格式
Feb 28 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
对Python中9种生成新对象的方法总结
May 23 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
Python urllib库如何添加headers过程解析
Oct 05 Python
关于python中模块和重载的问题
Nov 02 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 JSON格式数据交互实例代码详解
2011/01/13 PHP
PHP实现变色验证码实例
2014/01/06 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
php获取域名的google收录示例
2014/03/24 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python中针对函数处理的特殊方法
2014/03/06 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
Python用字典构建多级菜单功能
2019/07/11 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
上课迟到检讨书
2014/01/19 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
社区综治工作汇报
2014/10/27 职场文书
2016年元旦寄语
2015/08/17 职场文书
修辞手法有哪些?
2019/08/29 职场文书
导游词之峨眉山
2019/12/16 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android