0

我正在尝试覆盖save()a 的方法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 回答