From 8eb56111bc2a37a448f4f02fec83cd6f8bd59c5f Mon Sep 17 00:00:00 2001 From: Bobson Lin Date: Tue, 25 Jun 2019 12:12:49 +0800 Subject: [PATCH] feat: Dear Diary Project - 9. Processing The Form --- dear_diary/README.md | 7 +++++++ dear_diary/entries/templates/entries/add.html | 1 + dear_diary/entries/views.py | 10 ++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/dear_diary/README.md b/dear_diary/README.md index e8a8602..ab95a82 100644 --- a/dear_diary/README.md +++ b/dear_diary/README.md @@ -129,3 +129,10 @@ Creating A Form 1. Create `EntryForm` in [entries/forms.py](./entries/forms.py). 2. Use `EntryForm` in `views.add` function. 3. Use form in `add.html` template. + + +Processing The Form +------ +1. Use `EntryForm` to handle POST request. +2. Redirect after submit form. +3. Add CSRF token in form. diff --git a/dear_diary/entries/templates/entries/add.html b/dear_diary/entries/templates/entries/add.html index e1c6624..19ecdaf 100644 --- a/dear_diary/entries/templates/entries/add.html +++ b/dear_diary/entries/templates/entries/add.html @@ -23,6 +23,7 @@
+ {% csrf_token %}
{{ form.text }} diff --git a/dear_diary/entries/views.py b/dear_diary/entries/views.py index 0222071..eb4abdf 100644 --- a/dear_diary/entries/views.py +++ b/dear_diary/entries/views.py @@ -1,4 +1,4 @@ -from django.shortcuts import render +from django.shortcuts import render, redirect from .models import Entry from .forms import EntryForm @@ -12,7 +12,13 @@ def index(request): def add(request): - form = EntryForm() + if request.method == 'POST': + form = EntryForm(request.POST) + if form.is_valid(): + form.save() + return redirect(to='home') + else: + form = EntryForm() context = {'form': form} return render(request, 'entries/add.html', context)