美文网首页
xadmin+drf错误集锦

xadmin+drf错误集锦

作者: 幼姿沫 | 来源:发表于2021-02-25 14:27 被阅读0次

错误1. 引入xadmin后报错No module named 'django.core.urlresolvers'


from django.core.urlresolversimport NoReverseMatch, reverse

解决方法就是:

from django.urlsimport NoReverseMatch, reverse


如果还有以下错误如此更改:


2.xadmin源码地址:https://github.com/sshwsfc/xadmin

借鉴我的另外一篇文章

https://www.jianshu.com/p/f5bb30ca7281

下载并解压:

我们用到的是xadmin文件夹,将xadmin复制到项目的根目录,与项目同级别。

安装依赖库:

激活项目的虚拟环境,cd 到解压的 xadmin-master目录,运行一下代码

1pip3 install -r requirements.txt

在项目settings.py设置文件中引入:

在项目的urls.py中设置

然后运行:python manage.py makemigrations 建立数据库迁移文件

这个时候就会引出一系列的错误提示

错误一:关联关系ForeignKey引发的错误,打开xadmin文件中的模型文件models.py

凡是出现关联关系字段的地方全部加上 on_delete=models.CASCADE, 如下图所示:

错误二:模块包名称合并修改引发的错误

错误提示:ModuleNotFoundError: No module named'django.core.urlresolvers' 

这是因为django2.1把from django.core.urlresolvers修改成了django.urls

那么如图所示将 from django.core.urlresolvers import NoReverseMatch,reverse 

修改为:from django.urls import NoReverseMatch, reverse

错误三:出现如下错误提示

这是因为,django2.1.1的 forms表单初始化仅一个参数,将forms.Field.__init__(self,required,widget,label,initial,help_text, *args, **kwargs) 修改为如图所示:

错误四:ImportError: cannot import name 'login' from 'django.contrib.auth.views' 

解决办法:

# 将 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.1版本将xadmin\plugins\filters.py文件中的

from django.db.models.sql.query importLOOKUP_SEP, QUERY_TERMS

# 修改为

from  django.db.models.sql.query importLOOKUP_SEP, Query

# 在Django2.0版本中把

from django.db.models.sql.query importLOOKUP_SEP, QUERY_TERMS

# 修改为:

from django.db.models.sql.query importLOOKUP_SEP

from django.db.models.sql.constants importQUERY_TERMS

错误六:ModuleNotFoundError: No module named 'django.contrib.formtools'   导入fromtools错误,版本太低

解决方案:

# 卸载旧版本

pip uninstall django-formtools

# 安装新版本

pip install django-formtools

错误七:

解决方案:

# 把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,如下图所示

 错误八:AttributeError: 'Settings' object has no attribute 'MIDDLEWARE_CLASSES'

解决办法:

# 将xadmin\plugins\language.py 中的

if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware'insettings.MIDDLEWARE_CLASSES:

修改为:

if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware '   in  settings.MIDDLEWARE:

最后运行:python manage.py makemigrations 创建迁移数据文件

再运行:python manage.py migrate 迁移数据库


  错误九  *  TypeError: __init__() missing 1 required positional argument: 'on_delete'

解决方案:

定义外键的时候需要加上 on_delete=;

即:contract = models.ForeignKey(Contract, on_delete=models.CASCADE)

原因如下:

django 升级到2.0之后,表与表之间关联的时候,必须要写on_delete参数,否则会报异常:

TypeError: init() missing 1 required positional argument: ‘on_delete’

错误十  *

from import_export.admin import DEFAULT_FORMATS, SKIP_ADMIN_LOG, TMP_STORAGE_CLASS

ImportError: cannot import name 'SKIP_ADMIN_LOG'


解决办法*

分析步骤:

1.打开 import_export/admin.py,搜索“SKIP_ADMIN_LOG”,发现确实没有SKIP_ADMIN_LOG

变量,只有一个方法 get_skip_admin_log(self)

,此方法返回了skip_admin_log,而这个方法是在ImportMixin 类中定义的。

所以猜测,由于版本原因,旧版本中admin.py 是有SKIP_ADMIN_LOG的,新版本中放在了类中。而git上的项目用的是旧版包,我们拉取到本地之后下载的是新包,所以无法引用。

2.此时修改报错文件的代码,引入需要的类,用类调用方法,以此获取变量:

相关文章

  • xadmin+drf错误集锦

    错误1. 引入xadmin后报错No module named 'django.core.urlresolvers...

  • 关于Swift

    错误集锦1,Call can throw, but it is not marked with 'try' and...

  • nginx 错误集锦

    Nginx错误集锦主要收集在学习使用Nginx过程中出现的各类错误及相应的解决方案,本集锦将持续更新,仅供参考。 ...

  • 错误集锦

    一、Xcode摘自:http://tips.tutorialhorizon.com/2015/10/01/xcru...

  • 错误集锦

    Manifest merger failed with multiple errors, see ?Error:E...

  • 错误集锦

    开发Call:不要直接约 Demo:不要每页PPT都讲 层层铺垫

  • 错误集锦

    1. 视图层级错误 比如UIButton被后面加上去的view挡住了 2. Autolayout 伸缩 UILab...

  • xadmin 因为版本问题的错误

    针对django 2.0 xadmin 错误集锦 1.ModuleNotFoundError: No module...

  • mysql错误集锦

    2018-04-11:环境:linux+wdcp+phpservice mysqld status 报错“ERRO...

  • Web 错误集锦

    一. 在idea中使用mybatis插件生成dao、model等,确认写了mybatis_generator.p...

网友评论

      本文标题:xadmin+drf错误集锦

      本文链接:https://www.haomeiwen.com/subject/gktufltx.html