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()检查用户是否具有这些权限的方法。您可以覆盖这些方法,例如,如果权限是动态的(例如取决于数据库中的数据)。
添加回答
举报