小编Mar*_*way的帖子

django 导入错误:无法导入名称 list_route

我试图通过用@list_route 标记来添加一个新端点,但是当我尝试导入时:

from rest_framework.decorators import list_route
Run Code Online (Sandbox Code Playgroud)

它找不到它。我是否需要安装一些东西才能工作(我是 django 的新手)?

python django django-rest-framework

2
推荐指数
1
解决办法
4578
查看次数

Django Rest Framework中仅限员工的权限

我正在尝试创建只有员工的Django Rest Framework ModelViewSets.当我尝试使用标准的Django装饰器时,@staff_member_required我得到的错误让我相信装饰器不能与Django Rest Framework一起使用.

所以我正在尝试编写自己的ModelViewSet mixin.它主要按我的意思工作,除了我无法工作的更新方法.

所以,有两个问题:是否有更优雅的方法来实现这一点,如果没有,我的更新方法有什么问题?我找不到任何关于更新的文档,所以我正在使用我最好的猜测如何超级它,但它不起作用.

谢谢!

约翰

这是我的班级:

class StaffOnlyModelViewSet(viewsets.ModelViewSet):

def list(self, request):
    if self.request.user.is_staff:
        return super(StaffOnlyModelViewSet, self).list(request)
    else:
        content = {'Unauthorised': 'This API is private'}
        return Response(content, status=status.HTTP_401_UNAUTHORIZED)

def retrieve(self, request, pk=None):
    if self.request.user.is_staff:
        return super(StaffOnlyModelViewSet, self).retrieve(request, pk=None)
    else:
        content = {'Unauthorised': 'This API is private'}
        return Response(content, status=status.HTTP_401_UNAUTHORIZED)

def create(self, request):
    if self.request.user.is_staff:
        return super(StaffOnlyModelViewSet, self).create(request)
    else:
        content = {'Unauthorised': 'This API is private'}
        return Response(content, status=status.HTTP_401_UNAUTHORIZED)

def update(self, request, pk=None):
    if …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

2
推荐指数
1
解决办法
3013
查看次数

标签 统计

django ×2

django-rest-framework ×2

python ×1