31 Ocak 2012 Salı

django form postbacklerde alanların geri dolması

Django ile html template ile çalışırken ilk basit sorun, hata durumunda postbacklerde ilgili alanların geri doldurulması oldu;

Mesela bir form girişi yapıyorsunuz form.is_valid() false olarak geri dönüş yaptı. Peki kullanıcının daha önce girdiği verileri nasıl geri yollayacağız. Çözümü sorun kadar basit.

1) Eğer template içinde html elementler yerine django objelerini kullanarak html'iniz hazırlarsanız, bu sorun otomatik olarak django tarafından yönetilmektedir.
yani;

<..label for="id_willDate">Gönderilecek tarih : <..input type="text" name="willDate" id="id_willDate"/..>

kodunda input html elemanı yerine django objesini atayalım. (Elbette django tarafında form classımız yazılı olmalı)

<..label for="id_willDate"..>Gönderilecek tarih :<../label..>{{form.willDate}}

bu işlem ile template'mizden html input elemanımız otomatik olarak yaratılmakta ve postback işleminde yönetilmektedir.

2) Html template tarafında değerin varlık kontrolünü yaparak elle atayalım.

<..input type="text" name="willDate" id="id_willDate" '
{% if form.willDate.value %}
value="{{form.willDate.value}}"
{%endif%}
/..>


tuhaf günler dileğiyle..


Hiç yorum yok: