Найти - Пользователи
Полная версия: Сохранение картинки к статье при сохранении в админке
Начало » Django » Сохранение картинки к статье при сохранении в админке
1
Andrew82
Коллеги, подскажите правильная ли логика у меня прописана в models.py ?

# перед моделью сначала задаем путь для сохранения картинок и генерацию имен файлов картинок по алиасу статьи:
def art_img_path(instance,filename):
    path = 'articles/'
    filetype = os.path.splitext(filename)
    filename = instance.Alias+filetype[1].lower()
    return '%s%s' % (path,filename)

# Часть модели, структура таблицы статей
class Articles(models.Model):
    Categories = models.ForeignKey('Categories',verbose_name='Категория')
    Name = models.CharField(max_length=255, verbose_name='Заголовок')
    Alias = models.CharField(max_length=255, blank=True, verbose_name='URL', unique=True)
    Image = models.ImageField (verbose_name=u'Картинка', upload_to=art_img_path)
...

сейчас вроде все работает, но сомневаюсь правильно ли я все сделал, в джанговском ли стиле или нет, подскажите как правильно
FishHook
А почему не так?
Image = models.ImageField (verbose_name=u'Картинка', upload_to=art_img_path + '/articles')
зачем путь к файлу возвращать из функции, разве он может измениться?
Andrew82
не знаю, вот я и спрашиваю у специалистов как правильнее сделать
Значит оптимальнее будет сделать так?:
def art_img_path(instance,filename):
    filetype = os.path.splitext(filename)
    filename = instance.Alias+filetype[1].lower()
    return '%s%s' % (filename)

class Articles(models.Model):
    Categories = models.ForeignKey('Categories',verbose_name='Категория')
    Name = models.CharField(max_length=255, verbose_name='Заголовок')
    Alias = models.CharField(max_length=255, blank=True, verbose_name='URL', unique=True)
    Image = models.ImageField (verbose_name=u'Картинка', upload_to=art_img_path + '/articles')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB