我使用django的保存方法,我的错误为save() got multiple values for keyword argument 'max_length'
这是我的模特:
def generate_path(instance, filename):
section=instance.document_title.historical_set.last().id_section
year=str(section.year.number)
course=(section.course.name)
section=str(section.number)
curso=curso.encode('utf-8').decode('utf-8')
return os.path.join(ciclo,curso,seccion,filename)
class UseExistingStorage(FileSystemStorage):
def save(name, content, max_length=None):
if not self.exists(name):
return super().save(self,name, content, max_length)
return name
class Field(models.Model):
type=models.CharField(max_length=50, choices=document_type, default=None)
document_title=models.ForeignKey(Document,on_delete=models.CASCADE,null=True)
file = models.FileField(null=True,blank=True, upload_to=generate_path,storage=UseExistingStorage())
rubric=models.FileField(null=True,blank=True,upload_to=generate_path,storage=UseExistingStorage())
这就是我保存字段的方式:
if FieldForm.is_valid():
course=request.POST.get('course')
coursename=Course.objects.values('name').get(name=course)
try:
field.file=request.FILES['file']
except:
pass
try:
field.rubric=request.FILES['rubric']
except:
pass
if type.find('a')!=-1:
field.type='a'
elif coursename.find('b')!=-1 :
field.type='b'
elif type.find('c')!=-1:
field.type='c'
else:
field.type='d'
field.document_title=documentTitle
field.save()
在生成路径中,我会在年份/课程/部分中保存文档,并在存储检查中确定该字段是否存在于该位置。但我不知道为什么我会这样做错误
答案 0 :(得分:3)
您无需明确传递proc fac {x} {
if {$x<2} {
return 1
} else {
return [expr {$x * [fac [incr x -1]]}]
}
}
,self
会为您完成此操作,请尝试以下操作:
super()
而不是
return super().save(name, content, max_length)
覆盖return super().save(self,name, content, max_length)
的第一个论点也应该是save()
:
self
<强> UPD 强>
对于python2,您应该将def save(self, name, content, max_length=None):
if not self.exists(name):
return super().save(name, content, max_length)
return name
和self
作为超级参数传递:
class