我一直在阅读“表单向导”文档,试图寻找一种可以修改请求的方法。请在之前验证表单。在调用is_valid()
之后,似乎只有处理数据的方法。
通过修改我的意思是:
updated_request = request.POST.copy()
updated_request.update({
'artist': request.user.profile.person.id,
'musicLength': 60, # Just a placeholder, will be changed during validations
})
mainForm = UploadSingle(updated_request, request.FILES, instance=instance)
这样做的主要原因是因为我使用的是ajax,其中一些其他数据随请求一起传递。我希望能够自行验证,而不是通过表单向导在后台进行验证
答案 0 :(得分:0)
我认为您需要覆盖模型的save()功能并创建自己的验证规则。
答案 1 :(得分:0)
最适合我的方法是jQuery验证器,您可以在此线程中更详细地了解:
How to add validation rules with messages in jQuery validation?
例如:
$(document).ready(function () {
$("#account_info").validate({
rules: {
phone_number: {
required: true
},
recipient_name: {
required: true,
minlength: 6 // <-- removed underscore
}
},
messages: {
phone_number: {
required: "this field is required"
},
recipient_name: {
required: "Enter recipient name",
minlength: "Name should be at least {0} characters long" // <-- removed underscore
}
},
submitHandler: function (form) { // for demo
alert('valid form'); // for demo
return false; // for demo
}
});
});
答案 2 :(得分:0)
好,终于找到了解决方案。我要做的就是覆盖WizardView.get_form()
或post()
。如get_form
的表单向导文档所述:
此方法为给定步骤构造表单。
post()
是自我解释。由于需要将post
返回给我的ajax调用,我最终覆盖了JsonResponse
。