Здравствуйте!
Начал изучать django, решил в качестве тренировки сделать фотогаллерею.
Загружаю через админку фотографии, все получается на ура: и сами фотографии, и миниатюры. А вот удалять из админки не удается: запись удаляется, а сами файлы остаются. Сначала решил, что проблема в правах доступа, сделал chmod 777 photos - не помогло.
Помогите! Не знаю, в чем ошибка!
Вот содержимое models:
from django.db import models
from items.fields.ThumbnailImageField import ThumbnailImageField
class Album(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
def __unicode__(self):
return self.name
class Photo(models.Model):
item = models.ForeignKey(Album)
title = models.CharField(max_length=100)
image = ThumbnailImageField(upload_to='photos')
caption = models.CharField(max_length=250, blank=True)
def __unicode__(self):
return self.title
А здесь содержимое ThumbnailImageField:
from django.db.models.fields.files import ImageField, ImageFieldFile
from PIL import Image
import os
def _add_thumb(s):
parts = s.split(".")
parts.insert(-1, "thumb")
if parts[-1].lower() not in ['jpeg', 'jpg']:
parts[-1] = 'jpg'
return ".".join(parts)
class ThumbnailImageFieldFile(ImageFieldFile):
def _get_thumb_path(self):
return _add_thumb(self.path)
thumb_path = property(_get_thumb_path)
def _get_thumb_url(self):
return _add_thumb(self.url)
thumb_url = property(_get_thumb_url)
def save(self, name, content, save=True):
super(ThumbnailImageFieldFile, self).save(name, content, save)
img = Image.open(self.path)
img.thumbnail(
(self.field.thumb_width, self.field.thumb_height),
Image.ANTIALIAS
)
img.save(self.thumb_path, 'JPEG')
def delete(self, save=True):
if os.path.exists(self.thumb_path):
os.remove(self.thumb_path)
super(ThumbnailImageFieldFile, self).delete(save)
class ThumbnailImageField(ImageField):
attr_class = ThumbnailImageFieldFile
def __init__(self, thumb_width=128, thumb_height=128, *args, **kwargs):
self.thumb_width = thumb_width
self.thumb_height = thumb_height
super(ThumbnailImageField, self).__init__(*args, **kwargs)