django自定义文件存储路径

时间:2011-07-23 18:57:35

标签: django

我想从视图中动态设置文件存储路径,而不管实际的media_root路径如何。这可能吗。我已查看自定义存储对象,我知道自定义upload_to方法调用。目前我有一个方法,当我指定我的ImageField模型upload_to时调用。这让我可以更改media_root中的目录。我试图用覆盖的FileSystemStorage类做​​类似的事情,但无论它设置为什么我认为它是绑定之前我可以在视图中修改它。如果fileupload处理程序是要走的路,我会对如何实现它感到好奇。

2 个答案:

答案 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))