django - 用于服务媒体的用户权限 Django

标签 django user-permissions

我想设置一个允许某些用户访问某些媒体的 Django 服务器。我相信这不会那么难,我只是有点傻。

例如,我希望 USER1 能够访问 JPEG1、JPEG2 和 JPEG3,但不能访问 JPEG4,而 USER2 能够访问 JPEG3 和 JPEG 4。

[我知道我应该因为使用 Django 提供媒体而被火烧死,但这就是我目前正在做的事情,当我开始真正使用汽油时,我会改变它。]

最佳答案

您可以通过在请求中返回文件来使用 django 发送文件,如 Vazquez-Abrams 链接所示。

但是,由于效率的原因,您可能最好在 apache 中使用 mod_xsendfile(或在 lighttpd 中使用类似设置)。 Django 发送它的速度没有那么快,一种方法是在保留使用开发服务器静态函数的选项的同时这样做是 http://pypi.python.org/pypi/django-xsendfile/1.0

至于哪些用户应该能够访问哪些 jpeg,您可能必须自己实现。一种简单的方法是为具有访问权限的用户创建一个具有多对多字段的图像模型,以及一个检查当前用户是否在这些用户中的函数。沿线的东西:

if image.users_with_access.filter(pk=request.user.id).exists():
    return HttpResponse(image.get_file())

当然还有很多其他代码,仅作为示例。为此,我实际上在我自己的项目中使用了修改后的 mod_xsend。

关于django - 用于服务媒体的用户权限 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292887/

相关文章:

django - 部署单独的 React 前端和 Django DRF API

Django Haystack 和 Taggit

django - 您正在尝试在没有默认值的情况下将不可空字段 'id' 添加到 contact_info

python - Django 图像字段 "Upload a valid image. The file you uploaded was either not an image or a corrupted image."

android - 权限 : Call requires permission which may be rejected by user

postgresql - 我是否需要将 ALL 授予 PostgreSQL 9.3 数据库中某个表的所有者?

ios - 如果用户第一次拒绝 swift,如何再次请求权限(RunTime)

MySQL:如何允许用户 B 在不授予用户 GLOBAL SELECT 权限的情况下更改用户 A 的过程?

php - 在 Javascript 中通过 PHP 设置确定用户的角色

python - Django:模拟模型上的字段