我想自定义用于保存图像以备记录的文件夹...目前,我有:
original_image = models.ImageField(upload_to='photos')
但我想要的是将图像保存到photos/<vehicle's_stock_number>/
...如何将库存号添加到上传路径的末尾?
答案 0 :(得分:1)
根据FileField.upload_to
的文档:
这也可以是一个可调用的函数,例如一个函数,它将被调用以获取上传路径,包括文件名。这个callable必须能够接受两个参数,并返回一个Unix风格的路径(带有正斜杠)以传递给存储系统。将传递的两个参数是:
instance
:定义FileField的模型实例。更具体地说,这是附加当前文件的特定实例。在大多数情况下,此对象尚未保存到数据库中,因此如果它使用默认的AutoField
,则它的主键字段可能还没有值。
filename
:最初提供给文件的文件名。在确定最终目的地路径时,可能会或可能不会考虑这一点。
因此,如果您的模型具有stock_number
属性,则可以使用以下内容:
def get_path(instance, filename):
return 'photos/%s/%s' % (instance.stock_number, filename)