【问题标题】:Django ImageField Model: Get file path on upload_to callableDjango ImageField 模型:在 upload_to 上获取文件路径可调用
【发布时间】:2018-02-25 15:28:42
【问题描述】:

我有一个用于上传图像的 Django 管理字段,在我的模型中,我使用可调用对象来获取 FileField 实例和文件名。我的目标是打开用户尝试上传的文件,并通过他们的 API 将其上传到我的 Dropbox 帐户,并返回保存图像的 URL。如何获取正在上传的文件的完整路径?这是我目前在我的模型中拥有的:

    def upload_to_dropbox(self, filename):
      return DropboxStorage.store_file(self.image, filename)

    image = models.ImageField(upload_to=upload_to_dropbox)

我尝试使用 ImageField 的 .url 属性,但它返回了我的 MEDIA_ROOT 路径,也许我走错了路?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    upload_to 字段仅用于设置文件夹和文件名。如果您想与 Dropbox API 讨论存储文件,您需要创建 Storage api 的 Dropbox 实现并使用 storage 关键字。

    Django-storages 已经有一个 Dropbox 实现: http://django-storages.readthedocs.io/en/latest/backends/dropbox.html

    from storages.backends.dropbox import DropBoxStorage
    image = models.ImageField(storage=DropBoxStorage())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 2012-03-01
      • 2012-02-23
      • 1970-01-01
      • 2011-02-08
      • 2018-01-03
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多