【发布时间】:2012-04-28 23:16:46
【问题描述】:
我需要一个 django 管理员才能上传应保存为 /path/{self.id}.jpg 的图像
到目前为止,我有一个包含 id、status、title 字段的数据库和一个包含 id、status、title、THUMB 字段的模型:
class MEL(models.Model):
id = models.AutoField(primary_key=True, editable=False)
status = models.IntegerField(choices=( (0, 'inactive'), (1, 'active') ), default=1)
title = models.TextField(verbose_name='Título')
thumb = models.ImageField(upload_to=upload_path)
class Meta:
db_table = u'MEL'
问题是图像之前上传到正在保存的模型中,所以我现在无法将它保存到“self.id”。 我想我可以将它保存到 /tmp/{uuid} 然后在保存后重命名它,可能类似于:
def upload_path(self, filename):
self.file_uuid = uuid.uuid4()
return '/tmp/' + self.file_uuid
然后进行后保存,将其重命名并从 /tmp/ 中删除
或者我可以尝试覆盖这个模型的save()方法,首先调用super().save(),然后处理图片上传(在ImageFieldFile对象中)并重命名为self.id
建议?
谢谢
【问题讨论】:
-
这是解决这个问题最好的solution。
标签: django django-models django-admin