【问题标题】:Django REST Framework custom permission class not workingDjango REST Framework 自定义权限类不起作用
【发布时间】:2016-12-09 01:07:45
【问题描述】:

在尝试解决问题时,我试图强制我的自定义权限类返回 False,但事实并非如此。我仍然能够通过下面的 DateListViewSet 类执行成功的 GET 和 POST 请求。我不明白为什么下面的自定义权限类 (IsUser) 不起作用下面是我的自定义权限类、视图类和序列化程序。请帮忙

自定义权限类

class IsUser(permissions.BasePermission):

    def has_permissions(self, request, view):
        return False

混合和视图类

class DateListMixin(object):

    serializer_class = SimpleDateSerializer
    permission_classes = (permissions.IsAuthenticated, IsUser)



class DateListViewSet(DateListMixin, generics.BulkModelViewSet):

    def get_queryset(self):

        num = self.kwargs['rm']
        num2 = self.kwargs['id']
        r1 = Room.objects.get(pk=num)


        s1 = Schedule.objects.get(pk=num2)
        u = self.request.user.pk
        usr = User.objects.get(pk=u)

        if(s1.user.username == usr.username):
            queryset = r1.transactiondatetime_set.all()
            return queryset
        else: raise Http404("User does not exist")

序列化器类

class SimpleDateSerializer(BulkSerializerMixin, ModelSerializer, serializers.Serializer):
    start_dt = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")

    class Meta(object):
        model = TransactionDateTime
        list_serializer_class = BulkListSerializer
        fields = ('pk', 'start_dt', 'room')

【问题讨论】:

标签: django django-rest-framework


【解决方案1】:

我想通了。我应该输入权限而不是权限

【讨论】:

  • 你应该在哪里写权限而不是权限?
  • 对于遇到此问题的任何人,自定义异常类的方法应为:def has_permission(self, request, view):(不是has_permissions(...))。
猜你喜欢
  • 2021-06-18
  • 1970-01-01
  • 2021-11-21
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-02-02
  • 2015-08-18
  • 1970-01-01
相关资源
最近更新 更多