为了账号安全,请及时绑定邮箱和手机立即绑定

PermissionsMixin 和 PermissionRequiredMixin 是否相同?

PermissionsMixin 和 PermissionRequiredMixin 是否相同?

缥缈止盈 2021-10-05 16:25:29
我想知道是否PermissionsMixin具有与PermissionRequiredMixin.from django.contrib.auth.models import PermissionMixinfrom django.contrib.auth.mixins import PermissionRequiredMixin
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

不,PermissionsMixin是模型PermissionRequiredMixin的混合,是混合视图的混合。


我想知道是否PermissionsMixin具有与PermissionRequiredMixin.


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


在PermissionsMixin[Django的DOC]是Django模型一个mixin。如果添加混入到您的车型之一,它会添加特定于具有某些权限,如对象的字段is_superuser,groups以及user_permissions。它还提供了一组实用方法来检查具有此 mixin 的模型是否具有给定的权限(例如使用has_perm[Django-doc]。一个典型的子类化此 mixin 的User模型是模型 [Django-doc]。


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


from django.contrib.auth.mixins import PermissionRequiredMixin


class MyView(PermissionRequiredMixin, View):

    permission_required = ('polls.can_open', 'polls.can_edit')

因此View,我们在这里定义了一个,但只有具有这些权限的用户才能访问该视图。


这个 mixin 实现了一个get_permission_required()方法,该方法生成一个可迭代的检查权限,以及一个has_permission()检查用户是否具有这些权限的方法。您可以覆盖这些方法,例如,如果权限是动态的(例如取决于数据库中的数据)。


查看完整回答
反对 回复 2021-10-05
  • 2 回答
  • 0 关注
  • 305 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信