发起GET请求时遭遇AttributeError: 'Request'对象无'Get'属性的问题排查
解决AttributeError: 'Request' object has no attribute 'Get'的问题
这个错误的原因非常直接——你写错了Request对象获取查询参数的属性名!
在Django和Django REST Framework中,要获取URL里的查询参数(比如?token=xxx这种形式的参数),需要使用全大写的GET属性,而你代码里写的是request.Get(首字母大写G,后面是小写et),这个属性根本不存在,所以才会抛出AttributeError。
修正后的代码
把出错的那一行改成:
token = request.GET.get('token')
额外说明
request.GET是Django原生HttpRequest对象的标准属性,DRF的Request类对原生请求做了封装,但依然保留了这个属性来处理URL查询参数。- 如果你的token参数是通过请求体(比如POST的JSON数据)传递的,那应该用
request.data.get('token'),但你的视图是处理GET请求的,所以用request.GET完全没问题,只是之前的属性名拼写错误了。
内容的提问来源于stack exchange,提问作者Lutaaya Huzaifah Idris
相关产品推荐
相关产品推荐

