惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Privacy International News Feed
T
Threatpost
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Vulnerabilities – Threatpost
NISL@THU
NISL@THU
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
C
Cisco Blogs
T
The Blog of Author Tim Ferriss
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
博客园 - Franky
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
K
Kaspersky official blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tailwind CSS Blog
Project Zero
Project Zero
T
Tor Project blog
B
Blog RSS Feed
Recorded Future
Recorded Future
Scott Helme
Scott Helme
美团技术团队
V
V2EX
V
Visual Studio Blog
L
Lohrmann on Cybersecurity
P
Proofpoint News Feed
D
DataBreaches.Net
The Register - Security
The Register - Security
M
MIT News - Artificial intelligence
L
LangChain Blog
Cisco Talos Blog
Cisco Talos Blog
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园_首页
P
Privacy & Cybersecurity Law Blog

博客园 - 末世纪狂潮

[导入]Pylogs v1.14beta (正式支持Django 1.0) 发布 [导入]Tech·ED 2008 票到了。。。 [导入]ASP.NET获取客户端IP地址的几点补充[转载] - 末世纪狂潮 - 博客园 [导入]Windows Live Mail不能启动的解决办法 - 末世纪狂潮 [导入]Linux Mint中文语言包 [导入]XPS 1530安装MAC OsX 10.5.2指南 [导入]奥运加油,中国加油 [导入]IE7打不开微软的首页了? [导入]linux下常用格式的压缩与解压方法 [导入]利用PIL生成水印图片或文字 [导入]Pylogs v1.12beta发布 test live write write blog 用C#写一个简单的WINDOWS服务程序 测试tb .NET中实现无刷新客户端联动下拉菜单 "百万首页"深度思考 QQ天气预报代码 QQ登录没反应解决方法,及新版QQ的一个BUG 要开始学JAVA了,郁闷中。。。
[导入]Django中动态改变ImageField和FileField中文件的上传路径
末世纪狂潮 · 2008-10-04 · via 博客园 - 末世纪狂潮

在Django 1.0 以前,一直用override model中的 _save_FIELD_file这个方法来动态改变文件上传路径,更新到1.0后,发现这个方法已经移除了,so.得另找方法,今天看了一下,发现可以使用更简单灵活的方法了,即给upload_to附上函数的返回值即可,然后上传路径就由你改了,哈哈大笑

代码:


def get_photo_path(instance, filename):
'''dynamic upload path'''
date = datetime.now().strftime('%Y%m')
fname, ext = os.path.splitext(filename)
return 'upload/photos/albums/%s/%s/%s%s' % (get_album_dir(instance.album),
date,
instance.id,
ext.lower())

#model
class Photo(models.Model):
'''Photo'''
title = models.CharField(_('Title'),max_length=255)
desc = models.TextField(_('Description'),null=True,blank=True)
album = models.ForeignKey(Album,related_name='photo_sets',verbose_name=_('Album'))
photo = models.ImageField(_('Image File'),max_length=255,upload_to = get_photo_path)
tags = models.ManyToManyField(Tags,null=True ...

文章来源:http://oteam.cn/2008/10/4/dynamic-upload-paths-in-django/