2011-11-11 23 views
10

Django belgelerini kullanarak bir form oluşturmaya çalışıyorum. Ben sürekli hata alıyorum: True olduğunuform nesnesinin "clean_data 'özniteliği yok

'TestForm' object has no attribute 'cleaned_data' 

bile form.is_valid olsa (benim kod satırı 'form geçerli olduğunda' yazdırır). Aşağıda kodumun ilgili bölümleri vardır.

urls.py

url(r'^test/',views.test), 

forms.py

from django import forms 
class TestForm(forms.Form): 
    name = forms.CharField() 

views.py

def test(request): 
    if request.method == 'POST': 
     form = TestForm(request.POST) 
     if form.is_valid: 
      print 'form is valid' 
      print form.cleaned_data      
     else: 
      print 'form not valid' 
    else: 
     form = TestForm() 

    return render_to_response('User/Test.html',{'form': form},context_instance=RequestContext(request)) 

Test.html Formun temizleme ve doğrulama tetiklemediğinden

<form action="" method="post">{% csrf_token %} 
     <table> 
      {{ form.as_table }} 
     </table> 
     <input type="submit" value="Submit"> 
    </form> 

cevap

32

, bu is_valid() yöntemi hiçbir temizlenmiş veriye sahip, bu yüzden (parantez () dikkat edin) arayarak yapılır.

Düzeltme:

if request.method == 'POST': 
    form = TestForm(request.POST) 
    if form.is_valid(): 
     print 'form is valid' 
     print form.cleaned_data 
    ... 
+0

, sizin yazı için u ederiz, ben yanlış form.is_valid ise şimdi, kod başka bir bölümüne girer, it) (is_valid için düzeltildi.() Catch için – Jisson

+0

+1. Aynı sorun vardı ve zor kısmı, bir kırılma noktası belirlediğimde ve kodun üzerinden adım atmış olsam da işe yaramadı, aksi halde işe yaramayacaktı. Hata ayıklayıcısını tahmin etmek, form nesnesini is_valid() çağrısı olmadan bile tam olarak doldurmaya zorladı. – IMFletcher

+0

Bu garip bir sistemdir. Temizlenmiş verileri kullanmak istedim, ancak kendi doğrulamayı kullanıyorum (çünkü koşullu doğrulama gerekiyordu), bu yüzden is_valid() işlevini çağırmak zorunda kaldım ve daha sonra ne döndürdüğünü kullanmam gerekiyordu. – Deleet

İlgili konular