从管理员那里,我看到您可以为用户或用户组分配权限:允许添加、更改或删除模型中的数据。
这很好,但我还需要允许用户或用户组访问或不访问一组 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/