"Ошибка "Страница не найдена" после включения функции "Логин обязателен" (CMS_Permission)

Я хотел бы защитить паролем страницу на моем сайте.

Для этого я установил CMS_PERMISSION = True в settings.py. А в разделе Page > Permission я установил флажок login required.

При попытке зайти на страницу появилась следующая ошибка:

Page not found (404)
Request Method: GET
Request URL:    http://localhost:8000/en/accounts/login/?next=/en/private/
Raised by:  cms.views.details

Using the URLconf defined in backend.urls, Django tried these URL patterns, in this order:
en/ ^jsi18n/$ [name='javascript-catalog']
^static/(?P<path>.*)$
en/ ^admin/
en/ ^ ^blog-content/\Z [name='posts-latest']
en/ ^ ^blog-content/feed/\Z [name='posts-latest-feed']
en/ ^ ^blog-content/feed/fb/\Z [name='posts-latest-feed-fb']
en/ ^ ^blog-content/(?P<year>[0-9]+)/\Z [name='posts-archive']
en/ ^ ^blog-content/(?P<year>[0-9]+)/(?P<month>[0-9]+)/\Z [name='posts-archive']
en/ ^ ^blog-content/author/(?P<username>[^/]+)/\Z [name='posts-author']
en/ ^ ^blog-content/category/(?P<category>[^/]+)/\Z [name='posts-category']
en/ ^ ^blog-content/tag/(?P<tag>[-a-zA-Z0-9_]+)/\Z [name='posts-tagged']
en/ ^ ^blog-content/tag/(?P<tag>[-a-zA-Z0-9_]+)/feed/\Z [name='posts-tagged-feed']
en/ ^ ^blog-content/(?P<year>[0-9]+)/(?P<month>[0-9]+)/(?P<day>[0-9]+)/(?P<slug>[^/]+)/\Z [name='post-detail']
en/ ^ ^blog-content/(?P<year>[0-9]+)/(?P<month>[0-9]+)/(?P<slug>[^/]+)/\Z [name='post-detail']
en/ ^ ^blog-content/(?P<category>[^/]+)/(?P<slug>[^/]+)/\Z [name='post-detail']
en/ ^ ^blog-content/(?P<slug>[^/]+)/\Z [name='post-detail']
en/ ^ ^cms_login/$ [name='cms_login']
en/ ^ ^cms_wizard/
en/ ^ ^(?P<slug>[0-9A-Za-z-_.//]+)/$ [name='pages-details-by-slug']
en/ ^ ^$ [name='pages-root']
en/ ^sitemap\.xml$
en/ ^taggit_autosuggest/
en/ ^filer/
The current path, /en/accounts/login/, didn’t match any of these.

Мой urls.py выглядит следующим образом:

from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.urls import include, re_path, path
from django.views.i18n import JavaScriptCatalog
from django.contrib.sitemaps.views import sitemap
from cms.sitemaps import CMSSitemap
from djangocms_blog.sitemaps import BlogSitemap

urlpatterns = i18n_patterns(
    re_path(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
)

urlpatterns += staticfiles_urlpatterns()

urlpatterns += i18n_patterns(
    re_path(r'^admin/', admin.site.urls),
    re_path(r'^', include('cms.urls')),
    re_path(r'^sitemap\.xml$', sitemap, {'sitemaps': {'cmspages': CMSSitemap, 'blog': BlogSitemap,}}),
    re_path(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
    re_path(r'^filer/', include('filer.urls')),
    )

admin.site.enable_nav_sidebar = False

Как я могу решить эту проблему? Заранее спасибо

URL страницы, на которую вы пытались перейти, был http://localhost:8000/en/accounts/login/?next=/en/private/, но он не отображается в ваших URL, однако я вижу, что логин CMS отображается:

en/ ^ ^cms_login/$ [name='cms_login']

Так что вам нужно либо включить стандартные представления аутентификации Django, которые обычно указывают на /accounts/login, либо перейти на cms_login/

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