2011-07-23 158 views
0

我想从视图中动态设置文件存储路径,而不管实际的media_root路径如何。这可能吗。我已经看过自定义存储对象,并且我知道自定义upload_to方法调用。目前我有一个方法,当我的ImageField模型upload_to被指定时被调用。这让我可以更改media_root中的目录。我试图做一个类似的重写FileSystemStorage类,但无论它设置为我认为它是有约束的,我可以在视图内修改它。如果fileupload处理程序是要走的路,我会好奇如何实现一个。django自定义文件存储路径

回答

1

如果您在upload_to中指定的路径从/开始,那么它将被视为绝对路径。通过这个,你可以设置任何你想要的路径,而不管MEDIA_ROOT

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