Найти - Пользователи
Полная версия: Подставить в upload_to в кач-ве папки значение другого поля.
Начало » Django » Подставить в upload_to в кач-ве папки значение другого поля.
1
alvelin
Доброго времени суток. Возможно, это уже обсуждалось, но…
Есть следующая модель (условно):
class MyModel(models.Model):
vendor = models.CharField(max_length = 56)
logo = ImageField( upload_to = '...')
Вопрос: каким образом в кач-ве значения
upload_to=...
можно получить вводимое значение
vendor
?
На всякий случай - используется ImageField sorl-thumbnail… И где-то я адски туплю :)
appetito
всё просто, upload_to может быть функцией:

https://docs.djangoproject.com/en/1.3/ref/models/fields/#django.db.models.FileField
alvelin
appetito
всё просто, upload_to может быть функцией:

https://docs.djangoproject.com/en/1.3/ref/models/fields/#django.db.models.FileField
Спасибо, этот раздел я как-то всегда пропускал мимо. Сконструировал нечто, вроде:
name = models.CharField(max_length = 56)

def logos(instance, filename):
fname, dot, extension = filename.rpartition('.')
slug = slugify(instance.name + '-logo')
vendor = 'vendors'
logoplace = 'logo'
return '%s/%s/%s/%s.%s' % (vendor,instance.name, logoplace, slug, extension)

logo = ImageField(upload_to = logos)
Громозко, но работает. И тут, как об стенку…. В ситуации:

name = models.ForeighKey(Vendor)
…решение не работает: обращение к instanse.name выдает ошибку…

Не подскажете, как быть в такой ситуации? (Давно ничего не писал на Python'е)
Ziberbulger
может быть еще нет instance?
alvelin
Ziberbulger
…instanse
В смысле?
Ziberbulger
в смысле instance является None. и тогда ошибка типа NoneType object have not attribute called name
какую ошибку выдает то?

п.с. посмотрите http://bitbucket.org/Ziberbulger/extended_image_field
Может пригодится. Когда то писал для джанги. Там есть сортировка по разным папкам по-моему.
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