PermissionsMixin 和 PermissionRequiredMixin 是否相同?
Are PermissionsMixin and PermissionRequiredMixin the same?
我想知道PermissionsMixin
是否和PermissionRequiredMixin
有相同的功能。
from django.contrib.auth.models import PermissionMixin
from django.contrib.auth.mixins import PermissionRequiredMixin
否,PermissionsMixin
是模型的mixin,PermissionRequiredMixin
是视图的mixin。
I want to know if PermissionsMixin
has the same function as PermissionRequiredMixin
.
这些不是函数,而是类。 PermissionsMixin
是 models.
的混入
PermissionsMixin
[Django-doc] is a mixin for Django models. If you add the mixin to one of your models, it will add fields that are specific for objects that have permissions, like is_superuser
, groups
, and user_permissions
. It also provides a set of utility methods to check if the model with this mixin has a given permission (for example with has_perm
[Django-doc]. A typical model that subclasses this mixin is the User
model [Django-doc].
另一方面,PermissionRequiredMixin
[Django-doc] mixin 是一个 mixin,它提供了一种方便的方法来 检查 是否登录的用户具有所需的权限).例如:
from django.contrib.auth.mixins import PermissionRequiredMixin
<p>class MyView(<b>PermissionRequiredMixin</b>, View):
permission_required = ('polls.can_open', 'polls.can_edit')
这里我们定义了一个View
,但是只有拥有这些权限的用户,才能访问视图。
这个 mixin 实现了一个 get_permission_required()
方法,它生成一个可迭代的权限来检查,以及一个 has_permission()
来检查用户是否拥有这些权限。您可以覆盖这些方法,例如,如果权限是 dynamic(例如取决于数据库中的数据)。
为了方便将 Django 的权限框架包含到您自己的用户中 class,Django 提供了 PermissionsMixin。这是一个抽象模型,您可以将其包含在用户模型的 class 层次结构中,为您提供支持 Django 权限模型所需的所有方法和数据库字段。
我想知道PermissionsMixin
是否和PermissionRequiredMixin
有相同的功能。
from django.contrib.auth.models import PermissionMixin
from django.contrib.auth.mixins import PermissionRequiredMixin
否,PermissionsMixin
是模型的mixin,PermissionRequiredMixin
是视图的mixin。
I want to know if
PermissionsMixin
has the same function asPermissionRequiredMixin
.
这些不是函数,而是类。 PermissionsMixin
是 models.
PermissionsMixin
[Django-doc] is a mixin for Django models. If you add the mixin to one of your models, it will add fields that are specific for objects that have permissions, like is_superuser
, groups
, and user_permissions
. It also provides a set of utility methods to check if the model with this mixin has a given permission (for example with has_perm
[Django-doc]. A typical model that subclasses this mixin is the User
model [Django-doc].
另一方面,PermissionRequiredMixin
[Django-doc] mixin 是一个 mixin,它提供了一种方便的方法来 检查 是否登录的用户具有所需的权限).例如:
from django.contrib.auth.mixins import PermissionRequiredMixin <p>class MyView(<b>PermissionRequiredMixin</b>, View): permission_required = ('polls.can_open', 'polls.can_edit')
这里我们定义了一个View
,但是只有拥有这些权限的用户,才能访问视图。
这个 mixin 实现了一个 get_permission_required()
方法,它生成一个可迭代的权限来检查,以及一个 has_permission()
来检查用户是否拥有这些权限。您可以覆盖这些方法,例如,如果权限是 dynamic(例如取决于数据库中的数据)。
为了方便将 Django 的权限框架包含到您自己的用户中 class,Django 提供了 PermissionsMixin。这是一个抽象模型,您可以将其包含在用户模型的 class 层次结构中,为您提供支持 Django 权限模型所需的所有方法和数据库字段。