Django 中的功能权限
Functional permissions in Django
在 Django 中是否有内置的方法来为用户分配功能权限?从 documentations 看来,Dajngo 权限已绑定到模型。
比如我要创建的是4种用户组:Normal users、Managers、Admins和Superadmin。
默认情况下,不同组中的用户将有权执行不同类型的操作。例如 Admin 组的用户可以执行 Task1、Task2 和 Task3,但是 Managers 组的用户只能执行 Task1 和 Task2(无论这些任务在哪个应用程序中)。
此外,可以修改用户权限以撤销用户执行特定任务的权限。例如,默认情况下所有管理员都可以执行 Task1、Task2 和 Task3,但可以修改特定管理员的权限以仅执行 Task1 和 Task3。
这可以通过内置 Django 权限和组来实现,还是需要编写自己的权限系统(或者是否有第三方 Django 应用程序可以做到这一点)?
如果自己写权限和群组系统会更好,有什么设计建议可以参考。
谢谢!
您可以像 foo.can_write 那样在管理页面中设置权限,或者像
这样在您自己的视图中设置权限
myuser.user_permissions.add(permission, permission, ...)
在视图中,您可以设置某些操作所需的权限。来自文档:
from django.contrib.auth.decorators import permission_required
@permission_required('polls.can_vote')
def my_view(request):
在 Django 中是否有内置的方法来为用户分配功能权限?从 documentations 看来,Dajngo 权限已绑定到模型。
比如我要创建的是4种用户组:Normal users、Managers、Admins和Superadmin。
默认情况下,不同组中的用户将有权执行不同类型的操作。例如 Admin 组的用户可以执行 Task1、Task2 和 Task3,但是 Managers 组的用户只能执行 Task1 和 Task2(无论这些任务在哪个应用程序中)。
此外,可以修改用户权限以撤销用户执行特定任务的权限。例如,默认情况下所有管理员都可以执行 Task1、Task2 和 Task3,但可以修改特定管理员的权限以仅执行 Task1 和 Task3。
这可以通过内置 Django 权限和组来实现,还是需要编写自己的权限系统(或者是否有第三方 Django 应用程序可以做到这一点)?
如果自己写权限和群组系统会更好,有什么设计建议可以参考。
谢谢!
您可以像 foo.can_write 那样在管理页面中设置权限,或者像
这样在您自己的视图中设置权限myuser.user_permissions.add(permission, permission, ...)
在视图中,您可以设置某些操作所需的权限。来自文档:
from django.contrib.auth.decorators import permission_required
@permission_required('polls.can_vote')
def my_view(request):