我正在尝试category
从视图中的以下URL访问密钥:
...users/8/feed?category='x'
但是,当我self.kwargs
在视图中运行时,它仅返回'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
回报"user_id": 8, "category": 'x'
而不是回报"user_id": 8
?
重要的是,它必须保留为使用'?'的查询字符串参数。另外,我已经看到其他人使用来实现类似的东西self.request.GET
,使用this和之间有什么区别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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句