无法访问 url 中的 Django 查询字符串参数

Cannot access Django query string parameter in url

我正在尝试从我认为的以下 url 访问 category 密钥:

...users/8/feed?category='x'

然而,当我运行self.kwargs在我看来,它只是returns'user_id': 8.

文件urls.py:

path('users/<int:user_id>/feed', views.Posts.as_view())

文件views.py:

class Posts(APIView):
    def get(self, request, **kwargs):
        return Response(self.kwargs)

我会怎样改变 self.kwargs returns "user_id": 8, "category": 'x' 而不仅仅是 "user_id": 8

请务必将其保留为使用“?”的查询字符串参数。此外,我看到其他人使用 self.request.GET 实现类似的事情,使用它和 self.kwargs 有什么区别?

在 Django 视图中,self.kwargs 包含 URL 参数(在 URL conf 中指定的部分,如代码中的 <int:user_id>)和 self.request.GET保存查询字符串参数(?之后的部分)

要从两者获取数据:

class Posts(APIView):
    def get(self, request, **kwargs):
        print(self.kwargs['user_id'])

        # this returns None if there was no category specified
        print(self.request.GET.get('category'))

        new_d = {
            'user_id': self.kwargs['user_id'],
            'category': self.request.GET.get('category'),
        }
        return Response(new_d)