我希望有人能指出我正确的方向。Django FileSystemStorage get_available_name返回名称和计数
默认的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后执行的相应save方法,但没有成功抓取count。背景是一个有一个文件类,我在视图保存这样的:
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)
的观点:
我怎么可能从get_available_name从储蓄流向作进一步处理视图返回计数? 任何帮助,慷慨赞赏。 Thx!
PS:发布的代码不会运行,它更像伪代码,但我希望你明白了。
你为什么不分裂这个名字,并得到计数 – catherine 2013-03-20 17:44:20
正确的,我想过这个,不知道为什么我在这里采取“硬道路”... – Jingo 2013-03-20 17:50:19