如何使用django上传文件时创建年/月/日结构

时间:2011-08-31 08:01:46

标签: python django

使用基本图像字段和upload_to函数指向我的目标文件夹。我想知道是否有什么东西我可以用来创建上传日期或其他东西的年/月/日的文件夹结构..

的问候,

2 个答案:

答案 0 :(得分:6)

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

例如,假设 MEDIA_ROOT 设置为'/home/media'upload_to设置为“photos/%Y/%m/%d'。” '%Y/%m/%d'的{​​{1}}部分是strftime格式化。

  1. upload_to是四位数年份。
  2. %Y是两位数的月份。
  3. %m是两位数的日子。
  4. 如果您在2007年1月15日上传文件,它将保存在目录中 %d

答案 1 :(得分:6)

首先,检查一下:http://scottbarnham.com/blog/2007/07/31/uploading-images-to-a-dynamic-path-with-django/寻找“尝试4”(页面上的控制+ 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

的东西

第一个链接非常重要。