Menu
CoddyTech

Formulir POST

Termasuk bagian Formulir dalam perjalanan Django di Coddy. Pelajaran 2 dari 20.

Halaman /events/new/ dan view-nya sudah siap, tetapi halaman itu belum memiliki formulir untuk menambahkan acara. Formulir yang mengubah data menggunakan method="post": browser mengirim kolom-kolomnya di isi permintaan, bukan di URL. View membaca kolom-kolom tersebut dari request.POST, dengan kunci berupa name setiap input.

Django juga melindungi setiap formulir POST. Situs web lain dapat menyembunyikan formulir yang mengirim permintaan ke situsmu, lalu browser pengunjung akan mengirimkannya bersama cookie mereka. Serangan ini disebut pemalsuan permintaan lintas situs, atau disingkat CSRF. Karena itu, Django menolak setiap POST tanpa token rahasia dari halamanmu sendiri, dengan status 403 Forbidden. {% csrf_token %} di dalam formulir menuliskan token tersebut. Berikut contoh formulir buletin:

<form method="post">
    {% csrf_token %}
    <label for="email">Email</label>
    <input id="email" name="email" type="email">
    <button type="submit">Subscribe</button>
</form>

<label> memberi nama pada input yang id-nya cocok dengan for, dan type="date" menampilkan kalender.

challenge icon

Tantangan

Mudah

Di events/templates/events/new_event.html, ganti {# Write the form here #} dengan sebuah formulir.

  1. Gunakan method="post" dan letakkan {% csrf_token %} di urutan pertama. Tanpanya, Django menolak formulir dengan 403.
  2. Tambahkan input berlabel untuk title, date (dengan type="date") dan place, lalu tombol kirim.

Tambahkan sebuah acara, lalu tekan Semua acara: acara itu ada di dalam daftar.

Coba sendiri

{% extends "events/base.html" %}

{% block title %}Add an event{% endblock %}

{% block content %}
<h1>Add an event</h1>
{# Tulis formulirnya di sini #}
{% endblock %}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Formulir

Latihan sendiri: Playground Django