基本クラスは次のようになります(コードはDjangoから取得されますが、質問はDjango固有ではありません):
class BaseModelForm(BaseForm):
def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
initial=None, error_class=ErrorList, label_suffix=':',
empty_permitted=False, instance=None):
class ModelForm(BaseModelForm):
__metaclass__ = ModelFormMetaclass
派生クラスは次のようになります。
class MyForm(forms.ModelForm):
def __init__(self, data=None, files=None, *args, **kwargs):
super(EdocForm, self).__init__(data, files, *args, **kwargs)
self.Meta.model.get_others(data, files, kwargs.get('instance', None))
コーダーがインスタンスをkwargsとして渡す場合、これはすべて問題なく機能するはずですが、そうでない場合は、代わりにargsで渡しますか?*argsと**kwargsを処理するときにインスタンスを抽出するための正しい方法は何ですか?確かに、この場合、インスタンスがargsに含まれる可能性は低いですが、それが5番目ではなく3番目の引数である場合(自己を数えません)。