Ошибка Django flatpages The empty path didn't match any of these

В админке Django, создал новую простую страницу через приложение django.contrib.flatpages. URL адрес страницы установил "/". Предполагалось, что при входе на http://127.0.0.1:8000/ будет отображаться домашняя страница из flatpage. Но при заходе получаю следующую ошибку:

Request Method:     GET
Request URL:    http://127.0.0.1:8000/
Using the URLconf defined in core.urls, Django tried these URL patterns, in this order:
    admin/
    <path:url>
The empty path didn't match any of these.

Если же войти на http://127.0.0.1:8000// - с двумя слэшами, то домашняя страница открывается нормально. Определён единственный urls.py:

from django.contrib import admin
from django.urls import include, path
from django.contrib.flatpages import views

urlpatterns = [
    path('admin/', admin.site.urls),
]

urlpatterns += [
    path('<path:url>', views.flatpage),
]

Код взят с официального гайда. Как отобразить домашнюю страницу django flatpage на http://127.0.0.1:8000/?


Ответы (1 шт):

Автор решения: Alexander Kiyanov

В Django 3 можно использовать вместо метода path метод re_path, который позволяет в качестве URL паттерна указывать регулярные выражения, в моём случае достаточно исправить следующим образом:

urlpatterns += [
    re_path(r'^(?P<url>.*)$', views.flatpage),
]

В результате получим корректную обработку запросов на http://127.0.0.1:8000/. Подробнее об использовании методов path, re_path можно почитать по ссылке.

→ Ссылка