Wagtail 4.1, объект 'NoneType' не имеет атрибута '_inc_path'

Я пытаюсь интегрировать wagtail в существующий проект django, но получаю вышеуказанную ошибку при добавлении дочерней страницы.

В своих настройках я следовал инструкциям следующим образом:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    'whitenoise.runserver_nostatic',
    'home',
    'news',
    'wagtail.contrib.forms',
    'wagtail.contrib.redirects',
    'wagtail.embeds',
    'wagtail.sites',
    'wagtail.users',
    'wagtail.snippets',
    'wagtail.documents',
    'wagtail.images',
    'wagtail.search',
    'wagtail.admin',
    'wagtail',
    'modelcluster',
]


MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django_permissions_policy.PermissionsPolicyMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'wagtail.contrib.redirects.middleware.RedirectMiddleware',
]

урлы моих проектов:

from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static
from django.urls import reverse
from wagtail.admin import urls as wagtailadmin_urls
from wagtail import urls as wagtail_urls
from wagtail.documents import urls as wagtaildocs_urls


urlpatterns = [
    path('', include('home.urls')),
    path('news/', include('news.urls')),
    path('cms/', include(wagtailadmin_urls)),
    path('documents/', include(wagtaildocs_urls)),
    path('news/', include(wagtail_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

мои новостные ссылки:

from django.urls import path
from .views import news_article_detail

urlpatterns = [
    path('news/<int:pk>/', news_article_detail, name='news_article_detail'),
]

в моем новостном представлении:

from django.shortcuts import render
from .models import NewsArticlePage
#import pdb; pdb.set_trace()

def news_article_detail(request, pk):
    news_article = NewsArticlePage.objects.get(pk=pk)
    return render(request, 'news/news_page.html', {'news_article': news_article})

и моя модель:

from django.db import models
from wagtail.core.models import Page
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.core.fields import RichTextField

class NewsArticlePage(Page):
    article_body = RichTextField(blank=True)

    content_panels = Page.content_panels + [
        FieldPanel('article_body'),
    ]
    
    template = "news/news_page.html"

и в моем шаблоне:

{% extends "base.html" %}

{% block content %}
<h1>{{ page.title }}</h1>
{{ page.article_body|richtext }}
{% endblock %}

Я также добавил корневую страницу, убедился, что url'ы указывают на правильное место, сделал миграции & мигрировал, но все равно получаю ту же ошибку.

'NoneType' object has no attribute '_inc_path' обычно указывает на то, что внутренние поля (path, depth, numchild), определенные библиотекой django-treebeard для отслеживания количества дочерних элементов в дереве страницы, стали непоследовательными. Неясно, что могло вызвать это, но выполнение ./manage.py fixtree должно исправить ситуацию.

Вернуться на верх