django sorl在保存时创建拇指
上传照片时,我需要创建3种拇指。django sorl在保存时创建拇指,django,sorl-thumbnail,Django,Sorl Thumbnail,上传照片时,我需要创建3种拇指。 700x500、700x700、500x400–因此,当我在模板上使用以下内容时: {% thumbnail photo.file "700x500" crop="center" as im %} 或 或 第一个用户不会等待,缩略图模板标记应该从缓存中获取拇指。对吧? 这是我的模型: class Photo(models.Model): def __unicode__(self): return 'photo #%s' % (self.pk)
700x500、700x700、500x400–因此,当我在模板上使用以下内容时:
{% thumbnail photo.file "700x500" crop="center" as im %}
或
或
第一个用户不会等待,缩略图模板标记应该从缓存中获取拇指。对吧?
这是我的模型:
class Photo(models.Model):
def __unicode__(self):
return 'photo #%s' % (self.pk)
file = ImageField(upload_to=content_file_name)
name = models.CharField(max_length=50, null=True, blank=True)
featured = models.BooleanField(default=False)
"""
Make thumb on save
"""
def save(self, *args, **kwargs):
if not self.id:
#700x500
super(Photo, self).save(*args, **kwargs)
resized = get_thumbnail(self.file, "700x500", crop="center")
self.file.save(resized.name, ContentFile(resized.read()), True)
#700x700
super(Photo, self).save(*args, **kwargs)
resized = get_thumbnail(self.file, "700x700", crop="center")
self.file.save(resized.name, ContentFile(resized.read()), True)
#500x400
super(Photo, self).save(*args, **kwargs)
resized = get_thumbnail(self.file, "500x400", crop="center")
self.file.save(resized.name, ContentFile(resized.read()), True)
super(Photo, self).save(*args, **kwargs)
有道理吗
实际上,在保存后不创建thumb,但仅使用模板上的templatetags缩略图,我的服务器有时会出现故障,因为我有很多thumb要创建。使用异步任务队列(芹菜),上传文件时创建缩略图。我知道芹菜可能是最好的解决方案,但我需要直接创建没有芹菜的拇指。顺便说一句,怎么办?调用get_缩略图(self.file,“500x400”,crop=“center”)?如果需要限制操作,可以从任务中调用get_缩略图。芹菜提供了方法。如果首先使用{%thumbnail photo.file“500x400”crop=“center”as im%},然后在同一文件上使用get_缩略图(file,“500x400”,crop=“center”)。我应该从缓存中获取结果吗?似乎每次拇指都在再生,因为函数返回某些内容的速度非常慢。lmk,谢谢。@petkostas有什么想法吗?
{% thumbnail photo.file "500x400" crop="center" as im %}
class Photo(models.Model):
def __unicode__(self):
return 'photo #%s' % (self.pk)
file = ImageField(upload_to=content_file_name)
name = models.CharField(max_length=50, null=True, blank=True)
featured = models.BooleanField(default=False)
"""
Make thumb on save
"""
def save(self, *args, **kwargs):
if not self.id:
#700x500
super(Photo, self).save(*args, **kwargs)
resized = get_thumbnail(self.file, "700x500", crop="center")
self.file.save(resized.name, ContentFile(resized.read()), True)
#700x700
super(Photo, self).save(*args, **kwargs)
resized = get_thumbnail(self.file, "700x700", crop="center")
self.file.save(resized.name, ContentFile(resized.read()), True)
#500x400
super(Photo, self).save(*args, **kwargs)
resized = get_thumbnail(self.file, "500x400", crop="center")
self.file.save(resized.name, ContentFile(resized.read()), True)
super(Photo, self).save(*args, **kwargs)