Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » загрузка файлов в отдельную папку для каждого объекта [RSS Feed]

#1 Сен. 28, 2011 10:26:51

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

подскажите, плз, как сделать чтобы загрузка файла в поле типа ImageField. например такого

    img = models.ImageField(upload_to='projects')
производилась бы для каждого экземпляра класса в свою директорию, название которой это номер этого объекта в БД.
И работало бы это и при редактировании объекта и при его создании



Офлайн

#2 Сен. 28, 2011 15:52:02

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

загрузка файлов в отдельную папку для каждого объекта

upload_to может указывать на функцию, а она уже возвращает необходимый путь.



Отредактировано (Сен. 28, 2011 15:52:39)

Офлайн

#3 Сен. 28, 2011 16:26:45

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

как в этой функции узнать ID ещё не вставленного объекта?



Офлайн

#4 Сен. 28, 2011 18:06:24

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

mc
никак, пока объект не вставлен - его не существует. Можешь, к примеру, использовать хэш (например, md5) каких-то уникальных данных модели или использовать модуль наподобие uuid для генерации уникальных идентификаторов.



Офлайн

#5 Сен. 28, 2011 20:11:49

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

а объект instance или метод _set_pk_val() могут как то помочь?



Офлайн

#6 Окт. 4, 2011 14:50:26

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

и при добавлении объекта с полем типа m2m система как то же получает pk ещё не созданного объекта. Можно этим как то воспользоваться и при загрузке файлов?



Офлайн

#7 Окт. 4, 2011 18:18:21

Sergei
От:
Зарегистрирован: 2011-10-04
Сообщения: 29
Репутация: +  4  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

mc
и при добавлении объекта с полем типа m2m система как то же получает pk ещё не созданного объекта.
Объект primary key получает при создании (т.е. при добавлении записи в базу). “Pk еще не созданного объекта” это какая-то непонятная сущность.
Может путаешь что-то?



Офлайн

#8 Окт. 4, 2011 21:50:18

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

Sergei
Может путаешь что-то?
ну как путаю) когда добавляешь новый объект с полем m2m, в момент добавления в таблицу m2m добавляется же запись с pk этого нового добавляемого объекта, значение которого по идее в этот момент не известно. Так вот можно так же и с загружаемыми файлами поступить? Чтобы при добавлении объекта файлики бы записывались в папку название, которого pk объекта.



Офлайн

#9 Окт. 6, 2011 01:25:53

Sergei
От:
Зарегистрирован: 2011-10-04
Сообщения: 29
Репутация: +  4  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

mc
Sergei
Может путаешь что-то?
ну как путаю) когда добавляешь новый объект с полем m2m, в момент добавления в таблицу m2m добавляется же запись с pk этого нового добавляемого объекта, значение которого по идее в этот момент не известно.
Не. Сначала сохраняется объект (insert), после это pk этого объекта (который конечно теперь известен) добавляется в m2m. Никакой магии.



Офлайн

#10 Окт. 7, 2011 13:57:38

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

загрузка файлов в отдельную папку для каждого объекта

так вопрос в том, что как сделать, чтобы после инсерта и когда уже известен pk, происходил а бы запись файликов в папочку /pk/.



Офлайн

  • Начало
  • » Django
  • » загрузка файлов в отдельную папку для каждого объекта[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version