我希望有人能指出我正确的方向。
默认的 Django FileSystemStorage 函数 get_available_name 仅返回名称,然后将其存储在相应 FileField 的数据库中。
原始的 get_available 名称如下所示:
def get_available_name(self, name):
dir_name, file_name = os.path.split(name)
file_root, file_ext = os.path.splitext(file_name)
count = itertools.count(1)
while self.exists(name):
name = os.path.join(dir_name, "%s_%s%s" % (file_root, count.next(), file_ext))
return name
我怎么可能也返回计数。我试图返回一个像 (name, count) 这样的元组,并尝试修复在 get_available_name 之后执行的相应保存方法,但在抓取计数方面没有成功。背景是一个文件类,我保存在这样的视图中:
class DataFile(models.Model):
title=models.CharField(max_length=255, unique=False, blank=False)
file=models.FileField(max_length=255, blank=False, storage=fs, upload_to=get_path)
风景:
def save_uploaded_datafile(request):
### get request.FILES and save it
f=DataFile()
f.file=request.FILES['DataFile']
f.title=f.file.name
f.save()
我怎么可能从 get_available_name 返回计数以保存到视图中以进行进一步处理?任何帮助都将不胜感激。谢谢!
PS:发布的代码不会运行,它更像是伪代码,但我希望你明白。