【发布时间】:2011-01-15 17:12:27
【问题描述】:
大家好,我已经为我的图片写了一个简单的上传方法
class Picture(models.Model):
path = models.CharField(max_length=200)
filename = models.CharField(max_length=200)
car = models.ForeignKey('Car')
thumb_path = models.CharField(max_length=200)
created_on = models.DateField(auto_now_add=True)
updated_on = models.DateField(auto_now=True)
def save(self):
if not self.id:
thumb_size = 128, 128
thumb_path = "assests/uploads/thumb"+self.filename
t = Image.open(self.path)
t.thumbnail(thumb_size,Image.ANTIALIAS)
t.save(thumb_path, "JPEG")
self.thumb_path = thumb_path
super(Picture, self).save()
def delete(self):
os.unlink(self.thumb_path)
os.unlink(self.path)
super(Picture, self).delete()
正如您所见,这不是最好的方法,我想继续使用 ImageField() 来完成我的大部分工作,但我仍然希望能够灵活地创建缩略图和随机文件名。
我需要为 PictureThumbnail 创建另一个模型吗?我真的不想使用任何第三部分扩展。
我如何使用 ImageField 来完成这项工作?所有的图片都将被上传到/assets/uploads/
谢谢
【问题讨论】: