Получение данных формы через GET в Django
Давайте научимся отправлять форму методом GET и получать ее данные в представлении. Сделаем два адреса: один покажет форму, второй обработает результат.
Сначала добавим маршруты:
from django.urls import path
from main import views
urlpatterns = [
path('form/', views.show_form),
path('result/', views.show_result),
]
В шаблоне сделаем форму. В
action укажем адрес обработки.
Метод GET можно не писать - он
стоит по умолчанию:
<form action="/result/">
<input name="title">
<input name="slug">
<input type="submit">
</form>
Представление покажет шаблон формы:
from django.shortcuts import render
def show_form(request):
return render(request, 'form.html')
После отправки данные придут
в request.GET. Это словарь-подобный
объект. Давайте выведем значения:
from django.http import HttpResponse
def show_result(request):
title = request.GET['title']
slug = request.GET['slug']
return HttpResponse(title + ' ' + slug)
Сделайте форму поиска с полем
query. Отправка - методом GET.
Сделайте представление, которое
читает query из
request.GET и выводит его.
Добавьте в форму второе поле
page и выведите оба значения.