Genellikle Modeli için bir form oluştururken, ModelForm kullanmak isteyeceklerdir. Form sınıfı için alan türlerini yeniden tanımlamanız gerekmediği için KURUMSAL prensibine tutar. Ayrıca doğrulama işlemini otomatik olarak gerçekleştirir. Kullanılan alanları ve widget'ları özelleştirmek için tam esnekliği korursunuz. İstediğiniz alanları belirtmek için fields
kullanın veya yok sayılacak alanları belirtmek için exclude
kullanın. sizin örnek ile:
from django import forms
from django.shortcuts import get_object_or_404
class ItemForm(forms.ModelForm):
class Meta:
model = Item
fields = ("name",)
def bound_form(request, id):
item = get_object_or_404(Item, id=id)
form = ItemForm(instance=item)
return render_to_response('bounded_form.html', {'form': form})
get_object_or_404()
hata işleme biçimi olarak burada yararlıdır. Eksik kimlikte Item.objects.get(id=id)
kullanmak, aksi halde yakalanmamış bir Item.DoesNotExist
istisnası atar. Ayrıca bir try/except bloğunu da kullanabilirsiniz.
https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/ –
Eğer 'Form' kullanıyorum 'ModelForm' ile ilgili bir şey okumam gerektiğinden emin misiniz? Neye ihtiyacım olduğunu bilmiyorum? – krzyhub