Python PermissionsMixin和PermissionRequiredMixin在Django 2.0中是同一件事吗?
我想知道PermissionsMixin是否具有与PermissionRequiredMixin相同的功能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是
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')