当前位置:   article > 正文

Django报错解决方案集合_importerror: cannot import name 'removedindjango41

importerror: cannot import name 'removedindjango41warning' from 'django.util

【运行环境】:

  1. Python-3.6.6
  2. Django-2.0.7
  3. MySQL-5.7
  4. navicat

一、外键引用其他app中的model报错

【问题描述】:如下图,我欲在operationapp的models中引用coursesapp的models中的Course
在这里插入图片描述
部分代码如下:

# operation.models.py
from courses.models import Course
class UserCourse(models.Model):
	course = models.ForeignKey('Course', verbose_name=u'课程', on_delete=models.CASCADE)
  • 1
  • 2
  • 3
  • 4

运行makemigrations或者migrate命令时报错如下:
在这里插入图片描述
【问题分析】:由错误显示可知,我们虽然在operationapp的models.py中引用了coursesapp的models中的Course,但其实程序并未识别,还是显示当前app没有提供Course,上网查了半天,有的博客说是需要找到自己的/python3X/lib/site-packages/django/contrib/admin/migrations文件夹,把里面除了__init__.py的所有文件,尝试无果,遂自己分析原因。

【解决方案】:将以上代码修改成如下形式:

from courses.models import Course
class UserCourse(models.Model):
	course = models.ForeignKey(to=Course, verbose_name=u'课程', on_delete=models.CASCADE)
  • 1
  • 2
  • 3

【小结】:基于Django-2.1版本语法
①引用当前app的models的外键使用:

models.ForeignKey('self', on_delete=models.CASCADE)
  • 1

①引用其他app的models的外键使用:

models.ForeignKey(to=self, on_delete=models.CASCADE)
  • 1

关于on_delete参数的用法详见官方文档on_delete篇

二、Command ‘runserver’ took too long and may freeze everything.

【问题描述】:偶尔快捷键频繁运行Run manage.py Task时报错如下:
在这里插入图片描述
【解决方案】:等待几秒钟,在PyCharm菜单栏的Tools选项卡中重新Run manage.py Task一下。原因不详~
在这里插入图片描述

三、ImportError: cannot import name ‘RemovedInDjango20Warning’

【问题描述】:笔者在github试图clonexadmin源码后引用到自己的django(2.0.7)项目中(直接pip太慢,等了10分钟都还在卡顿~),后运行项目时报错如下:
在这里插入图片描述
【解决方案】:删除之前下载的xadmin,并通过以下git命令把xadminclone到本地然后在引用即恢复正常。(适用于django-2.0.x)

$ git clone -b django2 https://github.com/sshwsfc/xadmin.git
  • 1

这里给出我的云盘链接:https://pan.baidu.com/s/1Zm-Q-JX8P_fg291kyHV8Bw
提取码:g5ic

四、ModuleNotFoundError: No module named ‘django.core.context_processors’

【问题描述】:在Django-2.0.7版本中的setting.py文件中加入图片处理器后运行项目到目标页面时报错没有django.core.context_processors模块。

# setting.py
'context_processors': [
                ...
                # 添加图片处理器
                'django.core.context_processors.media',
            ],
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

报错原图如下
在这里插入图片描述
网页报错如下:
在这里插入图片描述
【解决方案】:context_processors在Django-1.9中是在core里的,到2.0版本时放在template目录下了。
将如下代码

'django.core.context_processors.media',
  • 1

替换为

'django.template.context_processors.media',
  • 1

五、Specifying a namespace in include() without providing an app_name

【问题描述】:在Django-2.0.7版本中的项目文件夹中的urls.py文件中使用include()方法,配namespace命名空间参数,报错没有提供app名字。
在这里插入图片描述
【解决方案】:
在你引用的app文件夹下的organization\urls.py,添加如下代码即可。

app_name = 'organization' # 我当前所用的app是organization
  • 1

持续积累中。。。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号