0
我有以下形式:Django的 - form.is_valid總是返回true
from django import forms
class ContactForm(forms.Form):
name = forms.CharField()
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
而以下幾種觀點:
def contact(request):
from forms import ContactForm
from django.contrib import messages
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid:
messages.success(request, 'Thank you for your feedback!')
else:
messages.error(request, 'Please correct the fields in red below.')
else:
form = ContactForm()
t = loader.get_template('contact.html')
c = RequestContext(request, {
'ContactForm': form,
})
return HttpResponse(t.render(c))
我使用Django 1.4,並根據文件中的字段是默認需要的,所以我不需要爲每個字段添加required=True
。
由於某些原因,form.is_valid
總是如此。即使form.name/email/message.errors
填充了錯誤,我仍然會在提交表單時出現Thank you for your feedback!
消息!我也試過爲每個字段明確設置required=True
,但它沒有區別。
這是我如何顯示的消息在contact.html
:
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">{{ message }}</div>
{% endfor %}
任何想法,我做錯了嗎?
那一刻,當你意識到你已經花了幾個小時的調試一些小事!謝謝! – abstractpaper 2012-07-23 07:38:02