0

save()のメソッドをオーバーライドしようとしていますModelForm。いくつかのフィールドを追加する必要があります (何らかの理由でクラス フィールドにself._meta.fields含めないでください)。コードは次のとおりです。Meta

def save(self, commit=True):
    """
    Save override
    """
    fields_to_save_list = list(self._meta.fields)
    fields_to_save_list.extend(['city','region','zip'])
    fields_to_save_tuple = tuple(fields_to_save_list)
    setattr(self._meta, 'fields', fields_to_save_tuple)
    return super(SubjectAdminForm, self).save(commit)

うまくいきません。私の self._meta.fields は常に同じです。多分いくつかの基本的なpythonの間違い。助けはありますか?

4

1 に答える 1

1

これはうまくいきません。__init__メソッドに追加する必要があります。

def __init__(self, *args, **kwargs):
    super(PartialAuthorForm, self).__init__(*args, **kwargs)
    self.fields['city'] = forms.CharField()    
    self.fields['region'] = forms.CharField()
    self.fields['zip'] = forms.CharField()
于 2013-05-31T20:12:32.737 に答える