既存のフォームを拡張して、送信時にメールが送信されるようにしたい:
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']
、スーパークラスからアクセスできないことですKeyError
。. 私は何をする必要がありますか?
編集
私は物事を単純化しすぎたと思います。コードが更新されました。問題は二重サブクラス化である可能性があります。