python - django文件下载权限怎么处理
本文介绍了python - django文件下载权限怎么处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
涉及到文件下载权限控制,这方面一般怎么实现呢?有没有一些现成的库呢?
简单说,就是实现a.file
这个文件,只允许特定用户,如jonh
下载。
解决方案
搞定了,谢谢。
1.写一个view
def download_key(request, key_file):
user = request.user
if not user.is_active:
return HttpResponseForbidden(u'此文件需要登录才可访问')
key = KeysManager.objects.get(key_file=key_file)
if not user.is_superuser or user not in key.who_can_see.all():
return HttpResponseForbidden(u'您没有权限访问些文件')
key_file_path = os.path.join(key.key_file.storage.location, key.key_file.name)
ret = FileResponse(open(key_file_path))
ret['Content-Disposition'] = 'attachment; filename="%s"' % key.key_file.name
return ret
2.挂在url上
url(r'^keys/download/(?P<key_file>.*)$', turing.views.filedown.download_key)
这篇关于python - django文件下载权限怎么处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文