我希望有人能指出我正確的方向。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