我有一个用于上传图像的Django管理员字段,在我的模型中我使用callable来获取FileField实例和Filename。我的目标是打开用户尝试上传的文件,并通过其API将其上传到我的Dropbox帐户,然后返回保存图片的网址。如何获取正在上传的文件的完整路径?以下是我目前在模型中的内容:
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路径,也许我会以错误的方式解决这个问题?
答案 0 :(得分: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())