我试图为一个模型创建一个自定义表单,在Django中有一个额外的字段,但是当我试图提交表单时,我得到了以下错误:
AttributeError: 'UnitForm' object has no attribute 'save_m2m'
这特别奇怪,因为我没有一个名为UnitForm的表单。在
我的forms.py
看起来像
class UnitAdminForm(forms.ModelForm):
time_changed = forms.SplitDateTimeField(widget=widgets.AdminSplitDateTime)
class Meta:
model = Unit
fields = ['status','time_changed']
def save(self, commit=True):
changed_at = self.cleaned_data.get('time_changed', None)
self.instance.status = self.cleaned_data['status']
self.instance.save(changed_at=changed_at) #the changed_at part is handled on the model
super(UnitAdminForm, self).save()
return self.instance
我的admin.py
看起来像:
似乎管理员正在创建一个新的类(UnitForm),它是我提供的类的子类,但是我仍然不确定为什么这个save_m2m方法不存在,或者我应该如何正确地修复这个错误。在
我遇到了同样的问题,我通过调用super()成功地解决了这个问题,如下所示:
我希望这有帮助
您没有
UnitForm
,但在UnitAdmin
中声明了一个。尝试将to-UnitAdmin类更改为:编辑:好的,我猜您的问题是您手动保存而忘记从django docs about save()调用save_m2m():
相关问题 更多 >
编程相关推荐