Django2.1.1とxadmin 0.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フォーム初期化パラメータは1つのみ
  • 異常情報:
  • 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プロパティ、django 2.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