【问题标题】:Customize save path for ImageField自定义 ImageField 的保存路径
【发布时间】:2010-09-07 13:39:47
【问题描述】:

我想自定义用于保存我的图像以供记录的文件夹...目前,我有:

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

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

【问题讨论】:

    标签: django


    【解决方案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)
    

    【讨论】:

    • 我刚刚从另一个链接获得了类似的解决方案...谢谢 Dominic
    猜你喜欢
    • 2013-12-24
    • 2016-05-24
    • 2013-12-05
    • 1970-01-01
    • 2012-06-12
    • 2019-09-09
    • 2013-09-15
    • 2011-10-11
    • 2011-01-16
    相关资源
    最近更新 更多