“dict”对象没有属性“data”

2024-03-29 05:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django框架编写API的测试用例,GET方法似乎可以正常工作,但当遇到POST错误时,总是会出现以下消息:

'dict' object has no attribute 'data'.

准确误差为,

res = respo.post({'ticker': 'FIB','open': 7.0,'close':8.0,'volume':200}) File "C:\Users\sathya.m\Desktop\mydsite\companies\views.py", line 32, in post serializer = StockSerializer(data=request.data) AttributeError: 'dict' object has no attribute 'data'

视图.py

def post(self,request):
    serializer = StockSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=200)

测试.py

^{pr2}$

Tags: djangonopy框架apidataobjectrequest
2条回答

通过使用以下代码,Post工作正常:

def test_getUserDetails(self):
        url = '/user/'
        data = {"username": "Ramu", "first_name": "Ram", "last_name": "Ram", "email": "ram@techtreeit.com"}
        headers = {'Content-Type': 'application/json'}
        r = requests.post(url, data=json.dumps(data), headers=headers)
        self.assertEqual(r.status_code,201)

您的视图的get和post方法需要一个请求对象作为参数,而不是dict。您要么自己提供这个请求对象,要么使用django的测试客户机(参见精细手册中关于测试的部分)

相关问题 更多 >