使用Django REST framework如何正确获取URL中的RESTful字符串参数
问题解决方法
报错原因
你在urls.py的路由规则中捕获了名为author的路径参数,Django会自动将该参数作为关键字参数传入对应视图的请求处理方法(这里是get方法),但你当前定义的get方法仅接收request一个参数,没有预留接收路由传入的额外参数的入口,因此触发参数不匹配的报错。
解决步骤
你可以任选以下任意一种方案修改views.py中的代码:
- 方案1:在get方法参数中增加
**kwargs接收所有路由传入的关键字参数,适配你现有通过self.kwargs取参数的逻辑
class UserView(APIView): def get(self, request, **kwargs): ... author = self.kwargs.get('author', None)
- 方案2:直接在get方法参数中显式声明接收
author参数,无需再通过self.kwargs取值
class UserView(APIView): def get(self, request, author=None): ... # 直接使用author变量即可
修改完成后重新启动服务,再次发起GET请求即可正常获取到URL中传递的author参数。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

