私は次のフォームを持っています:
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
常に true です。Thank you for your feedback!
エラーが入力されているにもかかわらず、フォームを送信すると常にメッセージが表示されますform.name/email/message.errors
! また、各フィールドを明示的に設定しようとrequired=True
しましたが、違いはありませんでした。
これは私がメッセージを表示する方法ですcontact.html
:
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">{{ message }}</div>
{% endfor %}
私が間違っていることは何か分かりますか?