Usunięcie wielu slashów z adresu URL - Django

0

Cześć, prośba o poradę.. W jaki sposób mogę pozbyć się wielokrotnych slashów z adresu url w django ? Albo wyświetlić błąd strony w przypadku podania adresu url z wielokrotnych slashem albo przekierować stronę na adres bez wielokrotnych slashów.

np. domena.pl/kontakt///// - aktualnie działa tak samo jak domena.pl/kontakt a chce osiągnąć albo błąd (żeby nie można bylo wyswietlić strony o takim adresie) albo przekierowanie na domena.pl/kontakt

Czy da się to załatwić w funkcji w tej funkcji : re_path(r'^contact/$', views.contact, name='contact'), ???

0

Źle podchodzisz do tematu. Musisz utworzyć kontroler do obsługi 404. Jak ci nie spasuje url w mapie się do żadnej strony dla przyjaznego linku to serwer przekierowuje na 404 kontroler.

Nie lubię pythona ale w doku jest to opisane jak zrobić https://docs.djangoproject.com/en/3.0/topics/http/views/

0

Dzięki za odpowiedź. A w jaki sposób dokładniej to zrobić ?

0

W urlsach dodajesz sobie coś w stylu
handler404 = 'mysite.views.handler_of_404

potem definiujesz tę funkcję

jak np:

def handler404(request, exception, template_name="404.html"):
    response = render_to_response(template_name)
    response.status_code = 404
    return response

Więcej: https://docs.djangoproject.com/en/3.1/topics/http/views/#customizing-error-views

Możesz też dopisać sobie middleware albo jakiś resolver, który będzie ucinał zbędne slashe na końcu, ale to niezbyt dobry pomysł.
Wprowadzenie adresu do zasobu, jaki nie iestnieje, powinno kończyć się 404.

1 użytkowników online, w tym zalogowanych: 0, gości: 1