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

时间:2011-08-18 09:56:15

标签: django

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

1 个答案:

答案 0 :(得分:3)

一年前我做了同样的事情。 我只想让相关用户下载他们的照片:

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

我的观点'data_access'给出了照片,或者是403页

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