如何在 DjangoRestFramework 中将数据与 APITestCase client.patch() 一起发送?
How do I send data along with APITestCase client.patch() in DjangoRestFramework?
我的测试用例:
class MyApiTests(APITestCase):
def test_retrieve(self):
resp = self.client.patch('/my/endpoint/', data={
'name': 'new name',
'age': 25,
'some_array': [{
'my_subobject_name': 'foo'
}]
}
在我的视图集中,如果我抓取 data['some_array']
,我得到:
u"{'my_subobject_name': 'foo'}"
.
为什么是字符串而不是一个字典的数组?
如果我发送
的字符串化版本
{
'name': 'new name',
'age': 25,
'some_array': [{
'my_subobject_name': 'foo'
}]
}
通过我的浏览器,DRF 工作正常,并且 some_array
将是一个包含一个字典的数组,正如预期的那样。
在 APITestCase 单元测试中发送复杂数据结构和 patch()
的正确方法是什么?
尝试在补丁函数调用中添加 format='json'
参数,即
class MyApiTests(APITestCase):
def test_retrieve(self):
resp = self.client.patch('/my/endpoint/', data={
'name': 'new name',
'age': 25,
'some_array': [{
'my_subobject_name': 'foo'
}]
}, format='json')
我的测试用例:
class MyApiTests(APITestCase):
def test_retrieve(self):
resp = self.client.patch('/my/endpoint/', data={
'name': 'new name',
'age': 25,
'some_array': [{
'my_subobject_name': 'foo'
}]
}
在我的视图集中,如果我抓取 data['some_array']
,我得到:
u"{'my_subobject_name': 'foo'}"
.
为什么是字符串而不是一个字典的数组?
如果我发送
的字符串化版本{
'name': 'new name',
'age': 25,
'some_array': [{
'my_subobject_name': 'foo'
}]
}
通过我的浏览器,DRF 工作正常,并且 some_array
将是一个包含一个字典的数组,正如预期的那样。
在 APITestCase 单元测试中发送复杂数据结构和 patch()
的正确方法是什么?
尝试在补丁函数调用中添加 format='json'
参数,即
class MyApiTests(APITestCase):
def test_retrieve(self):
resp = self.client.patch('/my/endpoint/', data={
'name': 'new name',
'age': 25,
'some_array': [{
'my_subobject_name': 'foo'
}]
}, format='json')