我完全是新的方案拟定工作,因此,请原谅可能是一个棘手的问题,但我过去几天来一直在讨论这个问题。
我有两种模式,即照片和Thumbnail。 我试图找到一种容易和动态的方式,为每个照片打上umb子。 我开始履行这一职能(目标——umb),但我喜欢在模式被称作时自动运行(主要是为了让我获得照片,即,一旦有模型,就立即获得图片。
以下是我的模式。 py. 任何在正确方向上的帮助或判断(即使只是“google blah”)都将受到高度赞赏。 感谢。
class Photo(models.Model):
name = models.CharField(max_length=100)
original_image = models.ImageField(upload_to= photos )
caption = models.TextField(null=True, blank=True)
title_slug = models.SlugField(null=True, blank=True, unique=True)
rootfilename = models.CharField(max_length=50, editable=False, blank=True)
num_views = models.PositiveIntegerField(editable=False, default=0)
def __unicode__(self):
return self.name
thumbnails = Thumbnail.objects.all()
def create_thumbs(self):
for thumbnail in self.thumbnails:
fname = (settings.MEDIA_ROOT + self.rootfilename + _ + thumbnail.name + .jpg )
if exists(fname):
None
else:
t_img = Image.open(self.original_image.path)
t_fit = ImageOps.fit(t_img, (thumbnail.height,thumbnail.width), Image.ANTIALIAS, 0, (0.5,0.5))
t_fit.save(fname,"JPEG")
def save(self, *args, **kwargs):
self.rootfilename = (self.original_image.name).strip( photos/.jpg )
super(Photo, self).save(*args, **kwargs)
self.create_thumbs()
def get_thumbs(self):
for thumb in self.thumbnails:
setattr(self, ( get_ +thumb.name+ _url ), ( thumbs/ +self.rootfilename+ _ +thumb.name+ .jpg ))