我创建了自定义clean()
方法的模型表单。但是这个clean()
方法不再适用了,因为我无法在QueryDict
中找到数据,所以我创建了一个不适用于该模型的formset。那么现在该怎么做才能使它工作(在formset QueryDict中查找与该表单相关的数据)?Django Formsets:会员形式干净的方法不工作?
这是会员形式:
class option_form(ModelForm):
class Meta:
model = option
exclude = ('warval','user')
def clean_value(self):
self.data = self.data.copy()
print(self.data)
if self.data['value']=='[email protected]':
raise forms.ValidationError("This can't be your email address")
return self.data['value']
这是错误:
Exception Type: MultiValueDictKeyError
Exception Value: "Key 'value' not found in <QueryDict: {u'form-1-value': [u''], u'form-INITIAL_FORMS': [u'1'], u'form-TOTAL_FORMS': [u'2'], u'form-MAX_NUM_FORMS': [u''], u'form-0-id': [u'1'], u'form-1-id': [u''], u'csrfmiddlewaretoken': [u'e645de635fe47559ac540eb32ea4d08d'], u'form-0-value': [u'[email protected]']}>"
一些示例代码可以帮助隔离问题。 – danihp 2012-07-24 12:01:25
在访问清洁属性之前,你是否调用超级清洁方法?类似_super(MyModelForm,self).clean()_ – Rohan 2012-07-24 12:04:27
不,我没有调用任何超级干净的方法。 – 2012-07-24 12:10:28