Django ModelForm save()重载

2024-09-28 13:21:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为一个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

我很确定这个错误很小,但我不知道出了什么问题。。。 提前感谢您提供的任何有用的提示!你知道吗


Tags: self版本truereturn定义savedef错误
1条回答
网友
1楼 · 发布于 2024-09-28 13:21:57

定义具有相同名称但不同属性的多个方法称为方法重载,在Java等语言中很流行。这在Python中是不允许的-简单明了。你知道吗

您需要更改第二个save方法的名称,或者将这些方法合并成一个NameFileSizeFile具有默认值的方法(使它们成为可选的)。你知道吗

相关问题 更多 >

    热门问题