尝试将 Wagtail CMS 集成到我的网站中,并且当我从“/admin”->“/cms-admin”更改路径名时已经成功,因为它导致与 Django 数据库管理页面发生冲突,并且我每当我转到“8000/cms-admin”时,就开始收到“wagtailadmin_sprite”的 NoReverseMatch 错误。
这是 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
]
当我在终端中搜索 URL 列表时显示“wagtailadmin_sprite”,并且所有 INSTALLED_APPS 已正确包含在 settings.py 中。
还使用最新的 Django 和 Wagtail 版本。
我有什么遗漏的吗?任何想法表示赞赏。
在包含 Wagtail 的 URL 时指定
namespace
是无效的,因为 Wagtail 代码中有很多地方在没有命名空间的情况下引用这些路由。 (但是,它们始终将 wagtail
作为 URL 名称的前缀,如 wagtailadmin_sprite
所示,因此不存在与您自己的 URL 路由发生命名冲突的风险。)
您应该使用不带命名空间参数的普通
include
来代替:
path('cms-admin/', include('wagtail.admin.urls')),