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.