[英]Django: Prevent form fields being cleared when invalid data entered
I have the following form, which allows a user to submit a file and email address. 我有以下表格,该表格允许用户提交文件和电子邮件地址。
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]
Here's the view: 这是观点:
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))
If the user submits the form with an invalid email, the form is displayed back to the user, but the fields are cleared. 如果用户使用无效的电子邮件提交表单,则表单将显示回用户,但字段将被清除。 What's the correct way to prevent this clearing of form fields? 什么是防止表单字段清除的正确方法?
Silly mistake. 愚蠢的错误。 Updated my template to include the form values. 更新了我的模板以包含表单值。 All working now. 一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.