Python PermissionsMixin和PermissionRequiredMixin在Django 2.0中是同一件事吗?

Python PermissionsMixin和PermissionRequiredMixin在Django 2.0中是同一件事吗?,python,django,mixins,Python,Django,Mixins,我想知道PermissionsMixin是否具有与PermissionRequiredMixin相同的功能 from django.contrib.auth.models import PermissionMixin from django.contrib.auth.mixins import PermissionRequiredMixin No,PermissionsMixin是模型的混入,PermissionRequiredMixin是视图的混入 我想知道PermissionsMixin是

我想知道PermissionsMixin是否具有与PermissionRequiredMixin相同的功能

from django.contrib.auth.models import PermissionMixin
from django.contrib.auth.mixins import PermissionRequiredMixin

No
PermissionsMixin
是模型的混入,
PermissionRequiredMixin
是视图的混入

我想知道
PermissionsMixin
是否具有与
PermissionRequiredMixin
相同的功能

这些不是函数,而是类。
PermissionsMixin
是模型的混入

这是Django模型的混合。如果将mixin添加到某个模型中,它将添加特定于具有权限的对象的字段,如
is_superuser
、和
用户权限
。它还提供了一组实用方法来检查具有此mixin的模型是否具有给定的权限(例如,具有)。将此mixin子类化的典型模型是

另一方面,mixin是一种mixin,它提供了一种方便的方法来检查登录的用户是否具有所需的权限。例如:

来自django.contrib.auth.mixin导入权限RequiredMixin
类MyView(PermissionRequiredMixin,视图):
所需权限=('polls.can\u open'、'polls.can\u edit')
因此,我们在这里定义了一个
视图
,但只有具有这些权限的用户才能访问该视图


此mixin实现了一个
get\u permission\u required()
方法,该方法生成一个要检查的权限列表,以及一个
has\u permission()
方法,该方法检查用户是否具有这些权限。例如,如果权限是动态的(例如,取决于数据库中的数据),则可以覆盖这些方法.

为了便于将Django的权限框架包含到您自己的用户类中,Django提供了PermissionsMixin。这是一个抽象模型,您可以将其包含在用户模型的类层次结构中,为您提供支持Django权限模型所需的所有方法和数据库字段


否。
PermissionMixin
是模型的mixin,而
PermissionRequiredMixin
是视图(和一些其他对象)的mixin。谢谢!@WillemVanOnsem vanonsem
from django.contrib.auth.mixins import PermissionRequiredMixin

class MyView(PermissionRequiredMixin, View):
    permission_required = ('polls.can_open', 'polls.can_edit')