|
37、python_django_web开发_由form进化到ModelForm与Ajax表单提交_笔记
ModelForm
Model与form之间的定义很相似 django可以把model转换成form
Modelform可以从model里拿字段也可以自己新增字段
如果你的FORM表单十分贴近数据Model,那么可以用ModelForm来节省大量代码。例如,如果数据模型中需要有3个字段,而且3个字段恰好都需要通过form来提交,那么使用ModelForm省时省力。同时,ModelForm也支持用户的自定义
如果你声明 save(commit=False),那么它就会返回一个还未保存至数据库的对象,这样的话 你可以用这个对象添加一些额外的数据,然后在用save()保存到数据库
是一种异步的操作 是Ajax操作 不会刷新我们的页面 返回json 不返回新页面
Ajax用户表单提交 自定义字段验证
<font size="4"><script>
$(function () {
$('#jsStayBtn').on('click', function () {
$.ajax({
cache:false,
type:"OST",
url:"{% url 'org:user_ask' %}",
data('#jsStayForm').serialize(),
async:true,
success: function (data) {
console.log(data)
{# alert(data)#}
if(data.status == 'success'){
$('#jsStayForm')[0].reset();
alert('提交成功')
}else if(data.status == 'fail'){
$('#jsCompanyTips').html(data.msg)
}
}
})
})
})
</script>
def clean_mobile(self):
"""
对mobile进行验证正则匹配
:return:
"""
mobile = self.cleaned_data['mobile']
REGEX_MOBILE = '^1[358]\d{9}$|^147\d{8}$|^176\d{8}
p = re.compile(REGEX_MOBILE)
if p.match(mobile):
return mobile
else:
raise forms.ValidationError(u'手机号码非法', code='mobile_invalid')</font>
复制代码 |
|