您的位置:首页 > 产品设计 > UI/UE

在forms.ModelForm使用request.POST

2016-02-26 00:00 393 查看
在form.ModelForm中使用request.POST中的数据,关键词:args

class ThisForm(forms.ModelForm):
class Meta:
model = ThisModel
fields = '__all__'

def __init__(self, *args, **kwargs):
self.iscommit = False
if len(args) > 0:
if args[0].get('_commit') is not None:
self.iscommit = True
super(MatchInitForm, self).__init__(*args, **kwargs)

def clean(self):
if self.iscommit:
# 数据校验
raise forms.ValidationError(
"数据校验。"
)

因,forms.ModelForm的声明如下:

class ModelForm(six.with_metaclass(ModelFormMetaclass, BaseModelForm)):
pass

又,BaseModelForm的 init方法:

def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
initial=None, error_class=ErrorList, label_suffix=None,
empty_permitted=False, instance=None):
# 其他省略
pass

在ThisForm在View中的初始化:

form = ThisForm(request.POST)
# 即data = request.POST
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python django form request