Форма и ее обработка в одном представлении в Django
Часто форму и ее обработку удобно держать в одном представлении. При GET показывают форму, при POST - читают данные.
Давайте сделаем один маршрут:
urlpatterns = [
path('form/', views.handle_form),
]
В шаблоне action можно оставить
пустым - форма отправится
на тот же адрес:
<form method="post">
{% csrf_token %}
<input name="title">
<input name="slug">
<input type="submit">
</form>
В представлении проверим метод запроса:
from django.http import HttpResponse
from django.shortcuts import render
def handle_form(request):
if request.method == 'POST':
title = request.POST['title']
slug = request.POST['slug']
return HttpResponse(title + ' ' + slug)
return render(request, 'form.html')
Сделайте форму регистрации с полями
login и password.
Показ и обработка - в одном
представлении.
При POST выведите введенный логин.
При GET покажите форму.