我想知道PermissionsMixin是否具有与PermissionRequiredMixin相同的功能。
from django.contrib.auth.models import PermissionMixin
from django.contrib.auth.mixins import PermissionRequiredMixin
答案 0 :(得分:1)
否,fsevents
是模型的混合,PermissionsMixin
是用于混合视图的混合。
我想知道
PermissionRequiredMixin
是否具有与PermissionsMixin
相同的功能。
这些不是 函数,而是 classes 。 PermissionRequiredMixin
是模型的混合。
PermissionsMixin
[Django-doc]是Django模型的混合。如果将混合添加到其中一个模型,它将添加特定于具有权限的对象的字段,例如PermissionsMixin
,is_superuser
和groups
。它还提供了一组实用程序方法,用于检查具有该mixin的模型是否具有给定的权限(例如,具有has_perm
[Django-doc]的权限。将其作为子类的典型模型是User
model [Django-doc]。
另一方面,PermissionRequiredMixin
[Django-doc]混入是一种混入,它提供了一种方便的方法来检查(如果已登录的用户具有所需的权限)。例如:
user_permissions
因此,我们在此定义了from django.contrib.auth.mixins import PermissionRequiredMixin
class MyView(PermissionRequiredMixin, View):
permission_required = ('polls.can_open', 'polls.can_edit')
,但是只有具有这些权限的用户才能访问视图。
此混入实现一个View
方法,该方法生成可迭代的检查权限,以及一个get_permission_required()
,用于检查用户是否具有这些权限。您可以覆盖这些方法,例如,如果权限是动态的(例如,取决于数据库中的数据)。
答案 1 :(得分:0)
为了方便地将 Django 的权限框架包含到您自己的用户类中,Django 提供了 PermissionsMixin。这是一个抽象模型,您可以将其包含在用户模型的类层次结构中,为您提供支持 Django 权限模型所需的所有方法和数据库字段。
<块引用>