python - Django - 某些 View 的用户权限?

标签 python django django-authentication django-permissions django-login

从管理员那里,我看到您可以为用户或用户组分配权限:允许添加、更改或删除模型中的数据。

这很好,但我还需要允许用户或用户组访问或不访问一组 View 。我的网站上有某些类型的服务,因此我希望允许某些用户访问某些服务(页面/ View ),但不允许其他用户访问。

那么如何允许某些用户/用户组访问某些 View ?谢谢!

最佳答案

无法添加或更改某个模型的用户将无法在管理员中看到它。

如果我们谈论的是您自定义创建的 View ,那么您可以创建一些东西来检查用户的权限,如果他们没有该权限,则返回 404。权限与模型相关联,可以为组分配各种权限。

您可以像这样向模型添加权限:

# myproject/myapp/models.py

class MyModel(models.Model):
    class Meta:
        permissions = (
            ('permission_code', 'Friendly permission description'),
        )

然后你可以检查一个用户是否有这样的权限:

@user_passes_test(lambda u: u.has_perm('myapp.permission_code'))
def some_view(request):
    # ...

使用权限,您可以轻松地在用户和组中添加或删除它们,只需使用管理界面。

关于python - Django - 某些 View 的用户权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597401/

相关文章:

python - 计算矩阵与其转置的相关性

python - python/django 中的 Web 代理?

python - 如何在views.py中调用django自定义编写的AuthenticationBackend的authenticate()方法?

python - Django:登录后重定向到上一页*使用查询字符串*

python - Django UserProfile ...没有密码

python - 在谷歌应用引擎中设计数据库

python - django static 到底是如何工作的

python - 如何在 Django 中使用 iframe 进行生产?

python - 如何在我的蛇应用程序中的网格之间填充颜色

Django 自定义包含标签