- Прежде всего вы должны обновить все ваши пакеты для поддержки Python 3.6 и Django 2.0.
Во всех ваших urls.py
вы должны изменить все функции url
на path
или re_path
.
url('some/', Create.as_view()) # old version
path('some/', Create.as_view()) # new version
Если вы используете namespace
в своей основной urls.py
, вам следуетдобавьте app_name к каждому приложению urls.py
.
app_name = ‘app-name’
Найдите в своем проекте
is_authenticated()
и измените его везде на
is_authenticated
.Теперь это атрибут, а не метод.Сделайте то же самое для
from django.core.urlresolvers import reverse
, замените его на
from django.urls import reverse
.
Теперь каждое поле модели ForeignKey
должно иметь аргумент on_delete
.Например:
on_delete=models.CASCADE
on_delete=models.DO_NOTHING
on_delete=models.SET_NULL
Проверьте официальную документацию по этому
Затем выполните миграции:
python manage.py makemigrations
python manage.py migrate
Далее, в settings.py
вам нужно изменить MIDDLEWARE_CLASSES
на MIDDLEWAR
Затем обновить MIDDLEWAR
, чтобы соответствовать этому:
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware'
Если вы используете свое промежуточное программное обеспечение в своем проекте, вы должны наследовать от MiddlewareMixin
, а не от object
.Поэтому вы должны импортировать его
from django.utils.deprecation import MiddlewareMixin
Проверьте официальную документацию для получения дополнительной информации. Попробуйтесделать это первым в следующий раз.