Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Подставить в upload_to в кач-ве папки значение другого поля. [RSS Feed]

#1 Авг. 7, 2011 15:51:11

alvelin
От:
Зарегистрирован: 2010-07-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Подставить в upload_to в кач-ве папки значение другого поля.

Доброго времени суток. Возможно, это уже обсуждалось, но…
Есть следующая модель (условно):

class MyModel(models.Model):
vendor = models.CharField(max_length = 56)
logo = ImageField( upload_to = '...')
Вопрос: каким образом в кач-ве значения
upload_to=...
можно получить вводимое значение
vendor
?
На всякий случай - используется ImageField sorl-thumbnail… И где-то я адски туплю :)



Офлайн

#2 Авг. 8, 2011 08:57:29

appetito
От:
Зарегистрирован: 2010-09-28
Сообщения: 147
Репутация: +  2  -
Профиль   Отправить e-mail  

Подставить в upload_to в кач-ве папки значение другого поля.

всё просто, upload_to может быть функцией:

https://docs.djangoproject.com/en/1.3/ref/models/fields/#django.db.models.FileField



Офлайн

#3 Авг. 8, 2011 22:20:45

alvelin
От:
Зарегистрирован: 2010-07-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Подставить в upload_to в кач-ве папки значение другого поля.

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'е)



Офлайн

#4 Авг. 11, 2011 10:40:00

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Подставить в upload_to в кач-ве папки значение другого поля.

может быть еще нет instance?



Офлайн

#5 Авг. 11, 2011 13:11:45

alvelin
От:
Зарегистрирован: 2010-07-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Подставить в upload_to в кач-ве папки значение другого поля.

Ziberbulger
…instanse
В смысле?



Отредактировано (Авг. 11, 2011 13:12:20)

Офлайн

#6 Авг. 11, 2011 16:43:35

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Подставить в upload_to в кач-ве папки значение другого поля.

в смысле instance является None. и тогда ошибка типа NoneType object have not attribute called name
какую ошибку выдает то?

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



Офлайн

  • Начало
  • » Django
  • » Подставить в upload_to в кач-ве папки значение другого поля.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version