我想从视图中动态设置文件存储路径,而不管实际的media_root路径如何。这可能吗。我已查看自定义存储对象,我知道自定义upload_to方法调用。目前我有一个方法,当我指定我的ImageField模型upload_to时调用。这让我可以更改media_root中的目录。我试图用覆盖的FileSystemStorage类做类似的事情,但无论它设置为什么我认为它是绑定之前我可以在视图中修改它。如果fileupload处理程序是要走的路,我会对如何实现它感到好奇。
答案 0 :(得分:1)
如果您在upload_to
中指定的路径以/
开头,那么它将被视为绝对路径。通过此,您可以设置任何您想要的路径,而不管MEDIA_ROOT
。
答案 1 :(得分:1)
您可以在视图path = default_storage.save(filePath, ContentFile(file))
中执行此操作
其中filePath是您需要存储的文件路径,file是用户上传的文件。此函数将通过存储文件返回路径。
file = request.FILES['filee']
filePath = '%s/%s' % ('path/to/directory', file.name)
file = file.read()
path = default_storage.save(filePath, ContentFile(file))