Обновление Wagtail с версии 4.1 на 6.2.2

Когда мне понадобилось установить поддержку markdown разметки на свой сайт, я установил библиотеку wagtail-markdown.

Установка библиотеки потянула за собой обновление Wagtail и после установки, мой сайт перестал работать.

Я опешил, и у меня не было достаточно времени на поиск решения проблемы. К счастью, все не так страшно и сейчас я расскажу, как у меня получилось обновиться и устранить все ошибки.

SnippetViewSet вместо modeladmin

Первое с чем Вы столкнетесь после обновления это несовместимость с modeladmin. Которая очень быстро устраняется, нужно всего лишь отключить в загрузке установленных приложений в файле конфигурации. Если использовали в проекте, то заменить реализацию на SnippetViewSet.

Я нашел информацию, что modeladmin больше не поддерживается, а вместо него используется SnippetViewSet. На моем сайте, modeladmin использовался для отображения страницы с данными форм. Исправить ошибку не составит труда. Просто наследуемся от нового класса SnippetViewSet.

#from wagtail.contrib.modeladmin.options import (
#    ModelAdmin,
#    modeladmin_register
#)
from wagtail.snippets.views.snippets import SnippetViewSet
class ModelContact(SnippetViewSet):
...

Отключить в загрузке приложений

Переходим в файл base.py - файл с настройками вашего проекта. Далее, в INSTALLED_APPS комментирует строку с загрузкой модуля "wagtail.contrib.modeladmin".

Выполнить миграции

Изначально, пока не устранены ошибки совместимости, manage.py не работает. После того как мы выполнили отключение modeladmin, manage.py очухался и можно было выполнить миграции.

python manage.py makemigrations
python manage.py migrate

Обновить статику

Нужно обязательно обновить статику выполнив команду:

python manage.py collectstatic

Статика собирается в том числе и для панели администратора, которая была изменена. Если не обновить статические файлы, то панелью администратора будет невозможно пользоваться.

Сбросить кеш браузера

И последний штрих -- обновить кеш браузера, иначе не получится работать в панели администратора.