NoReverseMatch 在 /cms-admin/ 找不到“wagtailadmin_sprite”的反向。 “wagtailadmin_sprite”不是有效的视图函数或模式名称

问题描述 投票:0回答:1

尝试将 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 版本。

我有什么遗漏的吗?任何想法表示赞赏。

python django wagtail
1个回答
0
投票

在包含 Wagtail 的 URL 时指定

namespace
是无效的,因为 Wagtail 代码中有很多地方在没有命名空间的情况下引用这些路由。 (但是,它们始终将
wagtail
作为 URL 名称的前缀,如
wagtailadmin_sprite
所示,因此不存在与您自己的 URL 路由发生命名冲突的风险。)

您应该使用不带命名空间参数的普通

include
来代替:

path('cms-admin/', include('wagtail.admin.urls')),
© www.soinside.com 2019 - 2024. All rights reserved.