[导入]Django中动态改变ImageField和FileField中文件的上传路径

在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/

转载于:https://www.cnblogs.com/bbisky/archive/2008/10/04/1314582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值