![](/img/trans.png)
[英]Django: save() got an unexpected keyword argument 'commit'
[英]django forms save() got an unexpected keyword argument?
在我看来:
image = simple_image_form.save(quiet=True)
我的表格:
class SimpleImageForm(forms.ModelForm):
class Meta:
model = Image
fields = ("image",)
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request", None)
super(SimpleImageForm, self).__init__(*args, **kwargs)
def save(self, *args, **kwargs):
kwargs["commit"]=False
obj = super(SimpleImageForm, self).save(*args, **kwargs)
if self.request and self.request.user:
obj.member = self.request.user.get_current_member()
obj.save(*args, **kwargs)
return obj
当我保存时,我收到错误:
save() got an unexpected keyword argument 'quiet'
我认为将** kwargs作为参数,这不会发生。 我究竟做错了什么?
注意:quiet是条件检查中使用的obj.save函数中的参数,但既不是表单的属性,也不是obj本身的属性
是的,你的覆盖可以处理kwarg
但你不应该对super
调用做同样的事情:
obj = super(SimpleImageForm, self).save(commit=False)
那应该做。 这是因为ModelForm
的save
方法签名是:
def save(self, commit=True):
所以它与你调用它的方式不符。
希望这可以帮助!
您需要有一个名为quiet
的字段才能将值保存到该字段。 我没有在表格中看到任何对这样一个字段的引用,所以我猜测模型中没有一个字段。 即使有,你可能不得不说在表单中引用它,因为你正在定义你正在使用的模型的哪些部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.