2009-08-09 7 views
0

今イム学習はフォームを検証するため、「すべて」イムは、空のフィールドのerrosを示すが、私は2つの質問を持って、取り組んでいる:フォームを検証し、塗りつぶしフィールドの値を表示する方法は?

  1. どのように病気にショー別にエラーがある充満フィールドの値フィールドは、<input ... value= {{ value }} >のように私のフィールドはhtmlフォームフィールドではないという問題があります。
  2. エラーを空のフィールドに正確に表示するにはどうすればよいですか? agai

    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> 
    

    ありがとう:私はこれを持っているか

N :)

答えて

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

関連する問題