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 tersebut belum memiliki form untuk menambahkan acara. Form yang mengubah data menggunakan method="post": browser mengirim field di dalam body permintaan, bukan di URL. View membaca field tersebut dari request.POST, dengan setiap name input sebagai kuncinya.

Django menambahkan satu aturan. Situs lain dapat menyembunyikan form yang mengirim permintaan POST ke situsmu, lalu browser pengunjung akan mengirimkannya beserta cookie mereka: serangan yang disebut CSRF. Karena itu, Django menolak setiap POST tanpa token rahasia dari halamanmu sendiri, dengan 403 Forbidden. {% csrf_token %} di dalam form akan menuliskan token tersebut. Contoh form newsletter:

<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 new_event.html, tulis formulir yang diharapkan oleh view:

  • Formulir mengirim field-nya dengan POST dan menyertakan token CSRF.
  • Satu input dengan label untuk setiap nilai yang dibaca view. Input tanggal menampilkan kalender.
  • Tombol kirim.

Tekan Jalankan, tambahkan acara, lalu buka halaman beranda.

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