Django,向登录用户显示某些媒体目录

Django,向登录用户显示某些媒体目录,django,Django,我有一个Django应用程序,用户可以下载分配给他们的文件。如何确保只有分配了该文件的用户才能下载该文件。因为它在媒体目录中,任何人都可以在那里浏览,所以有没有办法只让相关用户下载文件?我一年前也做过同样的事情。 我希望只有相关用户可以下载他们的照片: # urls.py (r'^data/photos/(?P<path>.*)$','views.data_access'), 好的,等等,但我仍然可以浏览到/media/etc/etc/photos/并查看照片,任何用户都可以看到。

我有一个Django应用程序,用户可以下载分配给他们的文件。如何确保只有分配了该文件的用户才能下载该文件。因为它在媒体目录中,任何人都可以在那里浏览,所以有没有办法只让相关用户下载文件?

我一年前也做过同样的事情。 我希望只有相关用户可以下载他们的照片:

# urls.py
(r'^data/photos/(?P<path>.*)$','views.data_access'),

好的,等等,但我仍然可以浏览到/media/etc/etc/photos/并查看照片,任何用户都可以看到。我弄错了?比显式设置
403
@Harry:nope更清楚,我的项目中的/data是经典的/media。@rm。谢谢,我不知道。编辑了答案。
# view data_access(request, path)
# [...code...]
if user_can_download:
        response = HttpResponse(mimetype="image/jpeg")
        response['Content-Disposition'] = 'attachment; filename=%s' % unicode(photo.image.name)
        response['X-Accel-Redirect'] = '/protected/'+ unicode(path)
        return response
else:
   return HttpResponseForbidden()