как создать структуру год / месяц / день при загрузке файлов с помощью django - PullRequest
3 голосов
/ 31 августа 2011

Я использую базовое поле изображения и функцию upload_to, чтобы указать на папку назначения.Мне было интересно, есть ли что-то, что я могу использовать, чтобы создать структуру папок с указанием года / месяца / дня на дату загрузки или что-то еще ...

Ответы [ 2 ]

6 голосов
/ 31 августа 2011

прежде всего, проверьте это: http://scottbarnham.com/blog/2007/07/31/uploading-images-to-a-dynamic-path-with-django/ ищите «Попытка 4» (control + f на странице), чтобы вы могли увидеть, как создать функцию для динамической загрузки.

затем, чтобы создать свой путь, вы должны использовать модуль datetime:

from datetime import date
today = date.now()
today_path = today.strftime("%Y/%m/%d") ## this will create something like "2011/08/30"

теперь у вас есть свой путь, лучше, если вы объедините его с вашим базовым путем и именем файла (базовый путь - это папка с изображениями)

os.path.join(MEDIA_ROOT, today_path, filename)

это даст вам что-то вроде /path/to/images/2011/08/30/filename.jpg

Первая ссылка действительно важна.

6 голосов
/ 31 августа 2011

https://docs.djangoproject.com/en/dev/ref/models/fields/#imagefield

Например, скажем, ваш MEDIA_ROOT установлен на '/home/media', а upload_to на 'photos/%Y/%m/%d'.
'%Y/%m/%d' часть upload_to имеет форматирование strftime.

  1. %Y - четырехзначный год.
  2. %m - двузначный месяц.
  3. %d - двузначный день.

Если вы загрузите файл 15 января 2007 года, он будет сохранен в каталоге /home/media/photos/2007/01/15.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...