Python Django:save()得到一个意外的关键字参数';提交';
在my forms.py中,我有一个自定义ModelForm,其中包含一个Python Django:save()得到一个意外的关键字参数';提交';,python,django,Python,Django,在my forms.py中,我有一个自定义ModelForm,其中包含一个save()方法: def save(self): bus = super().save(commit=False) datei = self.upload.name original_dateiname = datei.name extension = original_dateiname.split('.')[-1] a = Datei.objects.create(fil
save()
方法:
def save(self):
bus = super().save(commit=False)
datei = self.upload.name
original_dateiname = datei.name
extension = original_dateiname.split('.')[-1]
a = Datei.objects.create(file=datei, original_dateiname=original_dateiname, extension=extension)
self.datei = a
bus.save()
return bus
但是,现在我得到了一个错误:
save()得到一个意外的关键字参数“commit”
这里出了什么问题?您重新定义了save方法,使其不再接受commit参数,但在视图中保存表单时仍在传递一个参数。您应该接受参数并使用它来确定是否将对象保存到db
def save(self, commit=True):
bus = super().save(commit=False)
...
if commit:
bus.save()
return bus
您已经重新定义了save方法,使其不再接受commit参数,但在视图中保存表单时仍在传递一个commit参数。您应该接受参数并使用它来确定是否将对象保存到db
def save(self, commit=True):
bus = super().save(commit=False)
...
if commit:
bus.save()
return bus
您已重写save方法,但尚未保留其签名。您需要接受与原始方法相同的参数,并在调用super时传入它们
def save(self, *args, **kwargs):
super().save((*args, **kwargs)
...
您已重写save方法,但尚未保留其签名。您需要接受与原始方法相同的参数,并在调用super时传入它们
def save(self, *args, **kwargs):
super().save((*args, **kwargs)
...
save()
方法没有参数commit
默认参数为force\u insert=False,force\u update=False,using=None,update\u fields=None
@Jerin no,即模型保存方法。OP说这就是形式。save()
方法没有参数commit
默认参数是force\u insert=False,force\u update=False,using=None,update\u fields=None
@Jerin no,这就是模型保存方法。OP说这是表格。