2013-11-24 17 views
5

Spesso mi ritrovo a utilizzare un ModelForm nelle viste per visualizzare e tradurre le viste. Non ho problemi a visualizzare il modulo nel modello. Il mio problema è che quando lavoro con questi, i moduli spesso non si convalidano con il metodo is_valid. Il problema è che non so cosa stia causando l'errore di convalida.visualizzazione di errori di convalida del modulo django per ModelForms

Ecco un esempio di base in vista:

def submitrawtext(request): 
    if request.method == "POST": 
     form = SubmittedTextFileForm() 
     if form.is_valid(): 
      form.save() 
      return render(request, 'upload_comlete.html') 
     return render(request, 'failed.html') 
    else: 
     form = SubmiittedTextFileForm() 
     return render(request, 'inputtest.html', {'form': form}) 

So che il modulo non è convalidando perché sto reindirizzato al modello failed.html, ma so mai perché .is_valid è falso. Come posso impostarlo per mostrarmi gli errori di convalida del modulo?

risposta

6

paio di cose:

  1. Non state prendendo il POST inviato al POST.

  2. Per visualizzare il messaggio di errore, è necessario eseguire il rendering allo stesso modello.

Prova questo:

def submitrawtext(request): 
    if request.method == "POST": 
     form = SubmittedTextFileForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return render(request, 'upload_comlete.html') 
     else: 
      print form.errors #To see the form errors in the console. 
    else: 
     form = SubmittedTextFileForm() 
    # If form is not valid, this would re-render inputtest.html with the errors in the form. 
    return render(request, 'inputtest.html', {'form': form}) 
+0

che sono un idiota. grazie mille. –

Problemi correlati