NoReverseMatch at /cms-admin/ Reverse for 'wagtailadmin_sprite' not found. 'wagtailadmin_sprite' не является правильным именем функции представления или шаблона
Пытаюсь интегрировать Wagtail CMS на свой сайт и добился успеха, пока не изменил имя пути с '/admin' -> '/cms-admin', потому что это вызывало конфликт со страницей администратора базы данных Django и я начал получать ошибку NoReverseMatch для 'wagtailadmin_sprite' всякий раз, когда я перехожу к '8000/cms-admin'.
Вот файл urls.py:
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from wagtail.admin import urls as wagtailadmin_urls
from wagtail import urls as wagtail_urls
urlpatterns = [
path('db-admin/', admin.site.urls), # Django admin interface
path('', include('apps.home.urls')), # Home app URLs
path('', include('apps.users.urls')), # Users app URLs
# Wagtail
path('cms-admin/', include(('wagtail.admin.urls', 'wagtailadmin'), namespace='wagtailadmin')), # Wagtail admin with a unique namespace
path('documents/', include(('wagtail.documents.urls', 'wagtaildocs'), namespace='wagtaildocs')), # Wagtail documents with a unique namespace
path('', include('wagtail.urls')), # Wagtail page serving
]
«wagtailadmin_sprite» отображается, когда я ищу список URL в терминале, и все INSTALLED_APPS были правильно включены в settings.py.
Используем также актуальные версии Django и Wagtail.
Есть ли что-то, что я упускаю? Любые идеи будут оценены по достоинству.
Указание namespace
при включении URL-адресов Wagtail неправомерно, поскольку в коде Wagtail есть множество мест, которые ссылаются на эти маршруты без пространства имен. (Однако они всегда имеют wagtail
в качестве префикса к имени URL, как в wagtailadmin_sprite
, поэтому нет риска коллизии имен с вашими собственными URL-маршрутами.)
Вместо этого следует использовать обычную include
без аргумента пространства имен:
path('cms-admin/', include('wagtail.admin.urls')),