def limit_object_type_to(self, queryset): #限制对象类型只能是 角色的主体对象及其从属对象 if not self.role: return queryset qs=[] model=self.role.object_type.model_class() for ct in queryset: if is_parent_model(model, ct.model_class()): qs.append(ct.id) return queryset.filter(id__in=qs)
def limit_object_type_to(self, queryset): #限制对象类型只能是 角色的主体对象及其从属对象 if not self.role: return queryset qs = [] model = self.role.object_type.model_class() for ct in queryset: if is_parent_model(model, ct.model_class()): qs.append(ct.id) return queryset.filter(id__in=qs)
def limit_permissions_to(self, queryset=None): #限制对象类型只能是 角色的主体对象及其从属对象 if not self.object_type: return queryset qs=[] if not queryset: queryset=Permission.objects.all() model=self.object_type.model_class() for perm in queryset: m=perm.content_type.model_class() if m and is_parent_model(model, m): qs.append(perm.id) return queryset.filter(id__in=qs)
def limit_permissions_to(self, queryset=None): #限制对象类型只能是 角色的主体对象及其从属对象 if not self.object_type: return queryset qs = [] if not queryset: queryset = Permission.objects.all() model = self.object_type.model_class() for perm in queryset: m = perm.content_type.model_class() if m and is_parent_model(model, m): qs.append(perm.id) return queryset.filter(id__in=qs)