我正在尝试为ModelForm定义两个不同版本的save()方法,但是唯一正在执行的是第二个版本。当我尝试save()时,我得到错误:save()至少需要3个参数,1个给定。
[...]
def save(self,commit=True):
return super(NewProgramForm,self).save(commit=True)
def save(self, NameFile, SizeFile , commit=True):
inst = super(NewProgramForm, self).save(commit=False)
inst.size = SizeFile
inst.sketches_file = NameFile
inst.lines_of_code = 0
if commit: inst.save()
return inst
我非常肯定这个错误是微不足道的,但我无法弄清楚错误是什么...... 提前感谢您提供任何有用的提示!
答案 0 :(得分:1)
使用相同的名称定义多个方法,但不同的属性称为方法重载,并且在Java等语言中很流行。这在Python中是不允许的 - 简单明了。
您需要更改第二个save
方法的名称,或者将方法合并到一个方法中,NameFile
和SizeFile
具有默认值(使其成为可选)。