Я использую шаблон catch all для плоских страниц в Django, например: -
urlpatterns = [
path('somepath/', include('project.somepathapp.urls')),
path('anotherpath/', include('project.anotherpathapp.urls')),
etc.
]
urlpatterns += [
path('<path:url>/', views.flatpage),
]
В моем шаблоне я использую: -
<a href="/about-us/">About Us</a>
, чтобы добраться до О плоской странице. Но шаблон URL удаляет последний элемент sh и передает просмотр плоской страницы URL / about-us (в отличие от / about-us /). Затем при просмотре плоской страницы URL-адрес не заканчивается на sla sh, добавляется обратно, находит страницу и перенаправляет на этот URL , но добавляет дополнительный sla sh, чтобы URL-адрес is / about-us //
Если я удаляю последний шаблон sla sh из шаблона catch all, любой URL из основных путей (somepath / и anotherpath /) без конечного sla sh будет в соответствии с шаблоном catch all до используется APPEND_SLA SH, и, поскольку нет страницы с этим URL, пользователь получает 404. Таким образом, URL, такой как / somepath /, будет работать, но / somepath выиграл '. 1013
Что я сделал не так? Это похоже на уловку-22 для меня. Я не могу использовать опцию промежуточного программного обеспечения, потому что это не всегда проходит через другие представления промежуточного программного обеспечения, поэтому я застрял.
Есть идеи?