我想让用户上传不会保存在媒体文件夹中的媒体。当我使用以下代码行时,数据将被上传到media / upload / logo。
logo_img = models.FileField(upload_to='upload/logo', blank=True)
我想知道如何改变这种行为。
我会尝试编写一个自定义FileField和一个基于数据库条目提供数据的视图。我不想将用户上传的数据放在媒体文件夹中,因为它不是公共数据。
这种做法是否正确? 是否有解决方案可以完全满足我的要求,我会通过自己实现这一点来重新发明轮子?
非常感谢任何帮助!
答案 0 :(得分:3)
根据django的文档,FileField的默认行为是将文件上传到MEDIA_ROOT。如果您只想将上传的文件保密,您可以分开MEDIA_ROOT目录,dir包含您的站点媒体文件。并编写自定义视图以从MEDIA_ROOT提供文件。
如果您有更复杂的需求,您可以实现自己的文件存储。有关详细信息,请查看http://docs.djangoproject.com/en/dev/howto/custom-file-storage/。使用自定义文件存储,您可以完全控制文件的存储方式以及文件的提供方式。