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实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
Matplotlib配色之Colormap详解
Jan 05 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 Python
Python基本知识点总结
Apr 07 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 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
Python subprocess模块学习总结
2014/03/13 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
css3的transition属性详解
2014/12/15 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
中秋节活动总结
2014/08/29 职场文书
优秀党员先进材料
2014/12/18 职场文书
5.12护士节活动总结
2015/02/10 职场文书
家长对孩子的寄语
2015/02/26 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
七年级上册生物的课件
2019/08/07 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
Java spring单点登录系统
2021/09/04 Java/Android
人民币符号
2022/02/17 杂记