2009-08-09 83 views
0

現在即時通訊的學習,以驗證形式,「全」工作,即時顯示空字段的錯誤回報,但我有2個問題:如何驗證窗體並顯示填充字段的值?

  1. 如何生病秀當有另一個錯誤填充字段中的值如<input ... value= {{ value }} >問題是我的字段不是html表單字段。
  2. 怎麼生病顯示錯誤完全在空的領域?

我怎麼會有這樣的:

form.py

class NuevaDiligenciaForm(forms.Form): 
    titulo = forms.CharField(max_length=70)  
    tipo = forms.ChoiceField(choices=TIPO)   
    vias= forms.TypedChoiceField(widget=forms.RadioSelect(), choices=CHOICES) 

view.py

def add(request):   
    form = NuevaDiligenciaForm() 
    errors =[] 
    if request.method =='POST': 
     if not request.POST.get('titulo',''): 
      errors.append('Titulo es requerido') 
     if not request.POST.get('vias',''): 
      errors.append('Vias es requerido') 
     #if not errors: 
    return render_to_response('account/add.html', { 'formulario':form ,'errors':errors},context_instance = RequestContext(request)) 

template.html

{% if errors %} 
    <ul> 
     {% for error in errors %} 
     <li>{{ error }}</li> 
     {% endfor %} 
    </ul> 
{% endif %} 

{% if message %} 
     <p style="color: red;">{{ message }}</p> 
{% endif %} 
<form action='.' method='POST' class="nueva-diligencia"> 

{{ formulario.as_p }} 

<input type="submit" value="Continuar"> 
</form> 

感謝agai ñ:)

回答

0

你形成的代碼看起來在這裏很好,但你的觀點需要改變這樣的:

def add(request): 
if request.method =='POST': 
    form = NuevaDiligenciaForm(request.POST) 
    if form.is_valid(): 
     clean_data = form.cleaned_data 
     # Now do something with the cleaned data... 
else: 
    form = NuevaDiligenciaForm() 
return render_to_response('account/add.html', { 'formulario': form } 

和您的模板應該是這樣的:

{% if message %} 
<p style="color: red;">{{ message }}</p> 
{% endif %} 
<form action='.' method='POST' class="nueva-diligencia"> 
    {{ formulario.as_p }} 
    <input type="submit" value="Continuar"> 
</form> 

現在是,如果發生了什麼有沒有來自POST的錯誤數據,form.is_valid()將失敗,視圖將返回經過驗證的表單,該表單將包含帶有它們的字段旁邊的錯誤。 Django在這裏爲您處理所有的錯誤處理!試試看,讓我知道它是否按照您的預期工作。

這是,如果你想看看如何/爲什麼這個簡化版的實際工作更好的一個不錯的資源:http://www.djangobook.com/en/2.0/chapter07/

+0

感謝重播 – Asinox 2009-08-09 03:48:29

相關問題