0
私はファイルと電子メールアドレスを送信するためのフォームを用意しています。ここでDjango:無効なデータが入力されたときにフォームフィールドが消去されないようにします。
from django import forms
from django.utils.translation import gettext_lazy as _
from django.core.validators import validate_email
class UploadFileForm(forms.Form):
email = forms.EmailField()
file = forms.FileField()
class EmailField(forms.CharField):
default_error_messages = {
'invalid': _(u'Enter a valid e-mail address.'),
}
default_validators = [validate_email]
ビューです:
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
email = form.cleaned_data['email']
handle_uploaded_file(email, request.FILES['file'])
return HttpResponseRedirect('/thanks')
else:
form = UploadFileForm()
return render_to_response('upload_file.html', {'form': form},
context_instance=RequestContext(request))
ユーザーが無効な電子メールでフォームを送信する場合は、フォームがユーザーに戻って表示されますが、フィールドがクリアされます。このフォームフィールドのクリアを防ぐ正しい方法は何ですか?
ビューを表示します。 –
フィールドをクリアしないと、djangoのデフォルト動作です。あなたのビューとフォームコードを使ってダミープロジェクトを設定しました...エラーがフィールドをクリアしていないので、フォームがユーザーに表示されたので、投稿したものはすべてdjangoのストックインストール1.2。 –
しかし、それは私のために上記を使用してそれらをクリアします。私はDjango 1.2.1を使用しています。私はあなたのものではなく、これを引き起こす原因は何ですか? – FunLovinCoder