2017-09-16 78 views
0

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

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路径,也许我会对此错误的方法吗?

回答

1

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

Django的存储器已有一个收件箱实现: http://django-storages.readthedocs.io/en/latest/backends/dropbox.html

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