- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个派生自 ListAPIView 的 View ,具有以下权限:
permission_classes = (permissions.IsAuthenticated, IsOwnerOrSuperuser, )
IsOwnerOrSuperuse 是这样定义的:
class IsOwnerOrSuperuser(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
return obj.user == request.user or request.user.is_superuser
(与教程非常相似)
现在,当普通用户查询我的 View 时,它可以看到每个人的对象。权限不是应用于列表中的每个对象吗?我如何才能以最小的开销强制执行此类行为?
谢谢
最佳答案
不,has_object_permission
不适用于列出和创建端点,仅在只有单个实例的情况下检索、更新和删除。要过滤列表,您应该使用 get_queryset
来过滤对象。
class BlogList(generics.ListAPIView):
serializer_class = BlogSerializer
permission_classes = (IsOwnerOrSuperuser,)
def get_queryset(self):
user = self.request.user
return Blog.objects.filter(user=user)
要申请更多权限,您需要实现.has_permission(self, request, view)
....
关于permissions - 在 ListAPIView 中仅查看所有者的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22218660/
我有普通的 ListAPIView 和指定的模型和序列化器类。我需要在列表末尾添加一项附加项目。该项目应手动创建(无查询集),并且应具有与其他项目相同的结构。 最佳答案 您可以为此重写 list 方法
我有一个派生自 ListAPIView 的 View ,具有以下权限: permission_classes = (permissions.IsAuthenticated, IsOwnerOrSupe
我是 django 的新手,我在对象分页方面遇到了一个小问题。 我的模型: class FacebookBien(models.Model): uid = models.IntegerField(pr
我有一个 ListAPIView,它使用 DjangoFilterBackend 根据 url 参数过滤房间。下面的代码可以很好地做到这一点。 现在,我想根据从 Room 对象的其他属性、另一个 ur
如何在 Django REST framework 的 ListAPIView 中使用多个值过滤一个字段? URL: /api/items/?status=active&status=pending
我正在使用 ListAPIView,但无法过滤结果。我的代码是: class UserPostReadView(generics.ListAPIView): serializer_class
class listapiview(ListAPIView): queryset = testobj.objects.all() serializer_class = testobjS
我正在使用 Django REST Framework 创建一个将生成 PDF 文档的端点。 PDF 文档将包含与特定 Department 相对应的信息.我有两个所需的功能——能够下载 PDF 文档
我有一个扩展 generics.ListAPIView 的 Django View 。它适用于获取请求,但是由于 URL 的字符限制,现在我需要通过 POST 发送请求。这是相同的请求,我唯一需要更改
我遇到了错误 错误 -- 'many' 是此函数的无效关键字参数” 在序列化对象时在 ListAPIView 中。 class UserSerializer(serializers.ModelSeri
我正在创建一个应用程序,我想以某种方式返回数据,就像在正常的 ListApiView 中一样,我们直接将所有字段作为响应,我不希望这样 我的观点.py: class ListFolders(ListA
我有一个可以使用经度和纬度参数调用的 View 。 设置这些参数后,我希望响应在序列化中添加距离字段。 我是这样做的: def get_queryset(self): latitude = s
我正在创建一个应用程序,我想以某种方式返回数据,就像在正常的 ListApiView 中一样,我们直接将所有字段作为响应,我不希望这样 我的观点.py: class ListFolders(ListA
我正在使用 djangorestframework,我的目标是在我的 View 上使用 DjangoModelPermissions,它对 GET 请求使用react。官方文档说: The defau
我有一个使用 djangorestframework 运行的 django-filter 查询。下面的 View 函数用于 url。但是当我一开始就得到对象时,我不仅想通过搜索查询具有的参数(用户名和
我有一个使用 djangorestframework 运行的 django-filter 查询。下面的 View 函数用于 url。但是当我一开始就得到对象时,我不仅想通过搜索查询具有的参数(用户名和
我使用Django Restframework的通用ListApiView,我使用的序列化器由许多其他序列化器(嵌套序列化器)组成。我需要知道如何使用 URL 中的关键字并将其传递给序列化器,以便我使
在 Django REST 中,我有一个 ListAPIView,我用它来根据请求用户获取记录(通常只是一条记录): class UserPageView(ListAPIView): seri
我是一名优秀的程序员,十分优秀!