Введение в редиректы в Django
При обращении к одному адресу можно
перенаправить клиента на другой.
Для этого представление возвращает
редирект - ответ со статусом
302 и заголовком
Location.
Пусть есть два маршрута:
urlpatterns = [
path('post/show1/', views.show1),
path('post/show2/', views.show2),
]
И два представления, которые пока просто отдают текст:
from django.http import HttpResponse
def show1(request):
return HttpResponse('show1')
def show2(request):
return HttpResponse('show2')
Сделаем так, чтобы при обращении
к show1 выполнялась
переадресация на show2.
Удобнее всего - функция
redirect:
from django.shortcuts import redirect
from django.http import HttpResponse
def show1(request):
return redirect('/post/show2/')
def show2(request):
return HttpResponse('show2')
Тот же эффект дает класс
HttpResponseRedirect:
from django.http import HttpResponseRedirect
def show1(request):
return HttpResponseRedirect('/post/show2/')
Выполните редирект с одного представления на другое.
Сделайте форму, спрашивающую
у пользователя число. После
отправки формы, если введено
число от 1 до 10,
выполните редирект на другое
представление.