10
Próbuję wygenerować formularz za pomocą dokumentacji django. Ja stale otrzymuję błąd:obiekt formularza nie ma atrybutu "cleaned_data"
'TestForm' object has no attribute 'cleaned_data'
chociaż form.is_valid
jest True
(drukuje „forma jest ważna” linia mojego kodu). Poniżej znajdują się odpowiednie fragmenty mojego kodu.
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
<form action="" method="post">{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
, Thank u do postu, poprawiłem go is_valid(), teraz jeśli form.is_valid jest False, to wchodzi do innego części kodu. – Jisson
+1 dla catch(). Miałem ten sam problem i trudną częścią jest to, że zadziałało, gdy ustawiłem punkt przerwania i przejrzałem kod, ale nie działałbym inaczej. Odgadnięcie debuggera zmusiło obiekt formularza do pełnego zapełnienia nawet bez wywołania is_valid(). – IMFletcher
To dziwny system. Chciałem użyć wyczyszczonych danych, ale użyć własnego sprawdzania poprawności (ponieważ wymagało to warunkowego sprawdzania poprawności), więc musiałem wywołać funkcję is_valid(), a następnie nie używać tego, co zwraca. – Deleet