Study
Django

Forms & ModelForm

Penjelasan

Django Forms menangani validasi dan rendering HTML form. ModelForm adalah versi khusus yang otomatis membuat field form dari field model, jadi kamu tidak perlu menulis ulang validasi yang sudah ada di model.

Contoh Konsep

from django import forms
from .models import Catatan

class CatatanForm(forms.ModelForm):
    class Meta:
        model = Catatan
        fields = ['judul', 'isi']

# di view
def tambah(request):
    if request.method == 'POST':
        form = CatatanForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = CatatanForm()
    return render(request, 'catatan/tambah.html', {'form': form})

Praktikum

Buat CatatanForm sebagai ModelForm dengan field judul dan isi, lalu validasi request.POST di view tambah.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Selalu cek form.is_valid() sebelum form.save() — is_valid() menjalankan seluruh validasi (termasuk validasi custom di clean_<field>()) dan mengisi form.errors kalau gagal.