我想扩展现有表单,以便在提交时发送电子邮件:
class BaseForm(forms.Form):
field = forms.CharField()
def clean(self):
"do stuff"
return self.cleaned_data
class MyForm(BaseForm):
def clean_field(self):
"do some validation"
return self.cleaned_data['field']
class MyEmailingForm(MyForm):
def clean(self):
super(MyEmailingForm, self).clean()
send_mail('Form data',
self.cleaned_data['field'],
'Form <noreply@myform.co.uk>',
["formdata@myform.co.uk"],
fail_silently=True)
问题是 self.cleaned_data['field']
无法从父类(super class)访问,我收到一个 KeyError
。我需要做什么?
编辑
我认为我把事情过于简单化了。代码已更新,我认为问题可能是双重子类化。
最佳答案
您需要从基类方法和子类方法返回self.cleaned_data
。
关于python - 覆盖 clean(),数据不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15337918/