2010-09-07 88 views
0

路径我想自定义,是用于保存我的图片的记录文件夹......目前,我有:自定义保存的ImageField

original_image = models.ImageField(upload_to='photos') 

但我想有被保存的图像到photos/<vehicle's_stock_number>/ ...如何将股票编号添加到上传路径的末尾?

回答

1

每的文档FileField.upload_to

这也可以是一个可调用的,例如一个函数,其将被称为以获得上载路径,包括文件名。该可调用函数必须能够接受两个参数,并返回一个Unix风格的路径(带有正斜杠)以传递给存储系统。将通过的两个参数是:

instance:定义FileField的模型实例。更具体地说,这是当前文件被附加的特定实例。在大多数情况下,这个对象还没有被保存到数据库中,所以如果它使用默认的AutoField,它可能还没有其主键字段的值。

filename:最初赋予文件的文件名。在确定最终目的地路径时,这可能会也可能不会被考虑在内。

所以,如果你已经有了具有stock_number属性的模型,你可以使用这样的事情:

def get_path(instance, filename): 
    return 'photos/%s/%s' % (instance.stock_number, filename) 
+0

我刚刚得到来自另一个链接类似的解决方案...感谢多米尼克 – Stephen 2010-09-07 13:58:58