0
我需要保存沒有完整路徑的文件和文件名。 我這樣做:如何在模型中保存上傳文件的文件名
class Photo(models.Model):
photo = models.ImageField(upload_to = settings.PATH_PHOTOS_SOURCE)
user = models.ForeignKey(UserProfile, editable=False)
item = models.ForeignKey(Item, default=0)
filename = models.CharField(max_length=100, default='', editable=False)
def save(self, *args, **kwargs):
self.filename = os.path.basename(self.photo.url)
super(Photo, self).save(*args, **kwargs)
它的工作,但存在的情況下,與現有名稱的文件已經存在,並且offcourse在磁盤寫文件example_1.jpg,example_2.jpg,但在文件名保存文件名不正確example.jpg
我改變了我的保存方法等等:
def save(self, *args, **kwargs):
super(Photo, self).save(*args, **kwargs)
self.filename = os.path.basename(self.photo.url)
super(Photo, self).save()
它的工作,但我不喜歡這樣的代碼,也許是更優雅的代碼。
我試圖用信號做到這一點,但我有保存遞歸問題。
謝謝。好想法。 – yAnTar 2012-04-10 13:44:57