Django2.1.1与xadmin0.6.0遇到的坑(一)

(1)django2.0把from django.core.urlresolvers修改成了django.urls

  • 异常信息:
ModuleNotFoundError: No module named ‘django.core.urlresolvers‘
  • 解决方案:
修改site-packages\xadmin-0.6.1-py3.6.egg\xadmin\models.py
将from django.core.urlresolvers import NoReverseMatch,reverse修改为from django.urls import NoReverseMatch,reverse

(2)django2.1.1中需要给外键指定on_delete参数

  • 异常信息:
TypeError: __init__() missing 1 required positional argument: ‘on_delete‘
  • 解决方案:
把content_type = models.ForeignKey(ContentType)修改为content_type = models.ForeignKey(ContentType,on_delete=models.CASCADE)

(3)django2.1.1的 forms表单初始化仅一个参数

  • 异常信息:
TypeError: __init__() takes 1 positional argument but 6 were given
  • 解决方案:
把forms.Field.__init__(self,required,widget,label,initial,help_text,*args,**kwargs) 修改成forms.Field.__init__(self)

(4)Settings缺少MIDDLEWARE_CLASSES属性,django2.1.1把MIDDLEWARE_ClASSES改成MIDDLEWARE了

  • 异常信息:
AttributeError: ‘Settings‘ object has no attribute ‘MIDDLEWARE_CLASSES‘
  • 解决方案:
把:
if settings.LANGUAGES and ‘django.middleware.locale.LocaleMiddleware‘ in settings.MIDDLEWARE_ClASSES:
改成:
if settings.LANGUAGES and ‘django.middleware.locale.LocaleMiddleware‘ in settings.MIDDLEWARE:

(5)django-formtools导入失败,需要更新django-formtools了

  • 异常信息:
ModuleNotFoundError: No module named ‘django.contrib.formtools‘
  • 解决方案:
pip uninstall django-formtools
pip install django-formtools==2.1

(6)提示导入QUERY_TERMS报错

  • 异常信息:
ImportError: cannot import name ‘QUERY_TERMS‘
  • 解决方案:
在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
但是在Django2.1.1中把from django.db.models.sql.query import LOOKUP_SEP,QUERY_TERMS修改为
from django.db.models.sql.query import LOOKUP_SEP,Query

相关文章

Python中的函数(二) 在上一篇文章中提到了Python中函数的定...
Python中的字符串 可能大多数人在学习C语言的时候,最先接触...
Python 面向对象编程(一) 虽然Python是解释性语言,但是它...
Python面向对象编程(二) 在前面一篇文章中谈到了类的基本定...
Python中的函数(一) 接触过C语言的朋友对函数这个词肯定非...
在windows下如何快速搭建web.py开发框架 用Python进行web开发...