Program

Life is like a box of chocolates.You never know what you're gonna get

[导入]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/

posted on 2008-10-04 17:36  末世纪狂潮  阅读(504)  评论(0编辑  收藏  举报

导航