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
Ce n'est peut-être pas un problème que le framework devrait gérer. Vous pouvez écrire quelque chose pour la gestion des autorisations, puis utiliser le décorateur pour l'accrocher à la fonction d'affichage afin de déterminer s'il dispose d'autorisations suffisantes.
C'est fait, merci.
1. Écrivez un point de vue
2. Accrochez-vous à l'url
Ce n'est peut-être pas un problème que le framework devrait gérer. Vous pouvez écrire quelque chose pour la gestion des autorisations, puis utiliser le décorateur pour l'accrocher à la fonction d'affichage afin de déterminer s'il dispose d'autorisations suffisantes.