使用Pytest测试DRF ChatView列表接口时出现403权限错误
基于Django REST Framework(DRF)开发聊天功能,
ChatView
视图继承自
GenericViewSet
与
ListModelMixin
,包含list接口及3个自定义action,采用JWT认证,默认权限类为
NotBlocked
。
视图核心代码如下:
class ChatView(viewsets.GenericViewSet, mixins.ListModelMixin, SwaggerTag): queryset = Chat.objects.all() pagination_class = LimitOffsetPagination def get_queryset(self): with_users = Prefetch('users', queryset=User.objects.exclude(id=self.request.user.id)) return self.request.user.chat_set.prefetch_related(with_users).all() # 其余视图代码省略
使用Pytest测试list接口时,通过
api_client.force_authenticate(user=user1)
强制认证用户,但请求
/api/v1/chats/
仍返回403禁止访问,错误提示为“您没有足够权限执行此操作”。测试代码如下:
@pytest.mark.django_db