Django - Custom save()得到了一个意想不到的关键字参数' instance'

时间:2017-04-07 12:27:06

标签: python django django-forms

所以我有一个模型表单,使用自定义save()方法。当我将变量instance传递给表单时,我收到以下错误:

save() got an unexpected keyword argument 'instance'

如何在save方法中处理instance参数?我知道commit它只是一个简单的布尔句柄,但在传递对象时似乎更复杂。非常感谢!

class UpdateOrderForm(forms.ModelForm):
    #Some Data Here

    class Meta:
        model = Order


    def save(self, instance):
        updatedOrder= super(UpdatedOrderForm, self).save()
        #Some stuff happens here 
        return updatedOrder

1 个答案:

答案 0 :(得分:0)

在django文档中,明确指出save()只将commit作为参数。

def save(self, commit=True):
    updatedOrder = super(UpdatedOrderForm, self).save(commit=False)

    # do other things related to form
    if commit:
        updatedOrder.save()
    return updatedOrder

之前我们将它保存在updatedOrder中,但没有承诺做一些与表单相关的操作,一旦完成所有操作,然后提交到数据库。