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多线程编程中的join函数使用心得
Sep 02 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
python中正则表达式的使用方法
Feb 25 Python
Python3.5 创建文件的简单实例
Apr 26 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 Python
用Python制作音乐海报
Jan 26 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
简单的页面缓冲技术
2006/10/09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
python随机取list中的元素方法
2018/04/08 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
创建Django项目图文实例详解
2019/06/06 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
法律专业自我鉴定
2013/10/03 职场文书
基层干部十八大感言
2014/01/19 职场文书
中学生运动会入场词
2014/02/12 职场文书
学校后勤岗位职责
2014/02/19 职场文书
岗位职责怎么写
2014/03/14 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书