我需要帮助,我是新的django形式o它的工作方式。有一个html表单,我用javascript加密值,当表单像这样提交
$("#form").submit(function(){
//remplace the original value and send to the server the encrypted data
$("#field1").val(encrypted_data);
$("#field2").val(encrypted_data);
return true
});
我的django项目中有这个课程
class SomeForm(forms.Form):
field1 = forms.CharField(label="field 1")
field2 = forms.CharField(label="field 1")
clean_field1(self):
data = decrypt_text(self.cleaned_data['field1'])
p = re.compile(r'[\d]{8}')
#validate decrypt data is a number and his lengt is more than 8
if p.match(data) is None:
raise forms.ValidationError("Error")
return data
这项工作很好,问题是当数据无效时,我需要传递给该字段的原始值,并且当前返回带有de加密值的字段。
提前感谢!!
答案 0 :(得分:0)
这是你怎么做的: 在基于类的视图中的post()方法中,您将具有此条件
if form.is_valid():
# you do whatever you want with this form
else:
# when your form raises a validation error, this snippet gets executed
#so you need to write the following lines in the else condition to
#repopulate your form:
context['form'] = self.form_class(self.request.POST)
return render(request, self.template_name, context)
现在,当您遇到验证错误时,您也可以在模板中看到它。 希望你找到这个有用的