我试图get_queryset
根据用户从 django Guardian 获得的对象权限进行覆盖,以便只有对象是可见的,用户有权访问这些对象。
def get_queryset(self, request):
if request.user.is_superuser:
qs = super(MyAdminInline, self).get_queryset(request)
return qs
for item in MyModel.objects.all():
for perm in get_perms(request.user, item):
things_user_can_see = get_objects_for_user(request.user, perm)
return things_user_can_see
可悲的是,这实际上什么都不做,并且所有项目,无论用户拥有什么权限,都是可见的。