РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pydjSpMdSc 91 of 204 menu

Прерывание цепочки middleware в Django

Если не вызывать get_response, а сразу вернуть HttpResponse (или редирект), view не выполнится. Так делают, например, запрет доступа:

from django.http import HttpResponseForbidden class BlockMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if request.path.startswith('/secret/'): return HttpResponseForbidden('denied') return self.get_response(request)

Сделайте middleware: для пути /blocked/ возвращайте 403, иначе - обычный ответ.

Сделайте редирект с /old/ на /new/ целиком в middleware (без view для /old/).

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить