Подскажите как, в поле image_mini записать путь к миниатюре. Пробовал разные варианты-не получается(
def _add_mini(s):
parts = s.split(".")
parts.insert(-1, "mini")
if parts[-1].lower() not in ['jpeg', 'jpg']:
parts[-1] = 'jpg'
return ".".join(parts)
def _del_mini(p):
mini_path = _add_mini(p)
if os.path.exists(mini_path):
os.remove(mini_path)
class Photo(models.Model):
title = models.CharField(max_length=250)
image = models.ImageField(upload_to='portpholio_gallery')
captions = models.CharField(max_length=250, blank=True)
image_mini = models.CharField()---вот в это поле записать значение mini_path
class Meta:
verbose_name = ('Фото')
verbose_name_plural = ('Фото')
ordering = ['title']
def __unicode__(self):
return self.title
def _get_mini_path(self):
return _add_mini(self.image.path)
mini_path = property(_get_mini_path)
def get_mini_html(self):
html = '<a class="image-picker" href="%s"><img src="%s" alt="%s"/></a>'
return html % (self.image.url, _add_mini(self.image.url), self.captions)
mini_html = property(get_mini_html)
get_mini_html.short_description = ('Миниатюра')
get_mini_html.allow_tags = True
def save(self, force_insert=False, force_update=False, using=None):
try:
obj = Photo.objects.get(id=self.id)
if obj.image.path != self.image.path:
_del_mini(obj.image.path)
obj.image.delete()
except:
pass
super(Photo, self).save()
img = Image.open(self.image.path)
img.thumbnail(
(128, 128),
Image.ANTIALIAS
)
img.save(self.mini_path, 'JPEG')
def delete(self, using=None):
try:
obj = Photo.objects.get(id=self.id)
_del_mini(obj.image.path)
obj.image.delete()
except (Photo.DoesNotExist, ValueError):
pass
super(Photo, self).delete()
def get_absolute_url(self):
return ('photo_detail', None, {'object_id': self.id})
class PhotoAdmin(admin.ModelAdmin):
admin.site.disable_action('delete_selected')
def full_delete_selected(self, request, obj):
for o in obj.all():
o.delete()
full_delete_selected.short_description = 'Удалить выбранные фото'
actions = ['full_delete_selected']
list_display = ('title', 'captions', 'get_mini_html')
admin.site.register(Photo, PhotoAdmin)
А вывод хотел бы вот так сделать:
{% for obj in listing %}
<a href="{{ obj.image.url }}">
<img src= "{{ obj.image_mini.url }}" width = '120' height = '120' alt=""/></a>
{% endfor %}</div>