ava*_*tar 22 python django django-authentication django-permissions django-login
从管理员我看到您可以为用户或用户组分配权限,以允许:允许添加,更改或删除模型中的数据.
这很好,但我还需要允许用户或用户组访问或不访问一组视图.我在我的网站上有某种类型的服务,所以我想让一些用户访问某些服务(页面/视图)而不是其他用户.
那么如何允许某些用户/用户组访问某些视图?谢谢!
Mar*_*row 23
无法添加或更改某个型号的用户将无法在管理员中看到它.
如果我们正在讨论您自定义创建的视图,那么您可以创建一些检查用户权限的内容,如果他们没有该权限则返回404.权限与模型相关联,并且可以为组分配各种权限.
您可以向模型添加权限,如下所示:
# myproject/myapp/models.py
class MyModel(models.Model):
class Meta:
permissions = (
('permission_code', 'Friendly permission description'),
)
Run Code Online (Sandbox Code Playgroud)
然后你可以检查一个用户是否有这样的权限:
@user_passes_test(lambda u: u.has_perm('myapp.permission_code'))
def some_view(request):
# ...
Run Code Online (Sandbox Code Playgroud)
使用权限,您可以使用管理界面轻松地从用户和组中添加或删除它们.
Dan*_*man 10
您需要手动管理,但这很容易.据推测,有一个属性可以确定一个组是否有权查看视图:那么你只需用permission_required
装饰器来装饰该视图,如果这是一个简单的问题,即用户是否具有特定的权限,或者user_passes_test
它是否有点复杂:
@user_passes_test(lambda u: u.is_allowed_to_see_view_myview())
def myview(request):
...etc...
Run Code Online (Sandbox Code Playgroud)
假设这is_allowed_to_see_view_myview
是User对象上的某种方法.
该认证文档是非常全面的.
归档时间: |
|
查看次数: |
27338 次 |
最近记录: |