Django API客户端通过有效负载获取请求

时间:2020-04-18 15:01:47

标签: django python-3.x django-rest-framework

我正在寻找是否可行。如果我在邮递员中发送带有正文的get请求,则会得到与我需要的匹配的结果。

我们可以使用API​​Client发送带有正文的获取请求吗?

这是我的代码;


def setUp(self):
        self.client = APIClient()
        HistoryLog.objects.create(username='User1', log_time='2020-05-05', logon_time='08:00', logout_time='09:00')
        HistoryLog.objects.create(username='User2', log_time='2020-05-05', logon_time='08:30', logout_time='10:00')
        HistoryLog.objects.create(username='User3', log_time='2020-05-08', logon_time='08:40', logout_time='11:00')
        HistoryLog.objects.create(username='User4', log_time='2020-05-10', logon_time='08:50', logout_time='12:00')


def test_get_data(self):

        payload = {'date': '2020-05-05', 'start_time': '06:00', 'end_time': '12:00'}

        res = self.client.get(HISTORY_URL, payload)

        self.assertEqual(res.status_code, status.HTTP_200_OK) -- this passes.
        self.assertEqual(len(res.data), 2) -- this always come back that res.data is zero

1 个答案:

答案 0 :(得分:0)

有点笨拙,但似乎有效:

def test_get_data(self):
    payload = {'date': '2020-05-05', 'start_time': '06:00', 'end_time': '12:00'}
    data, content_type = self.client._encode_data(payload, 'json')
    res = self.client.generic('get', HISTORY_URL, data, content_type)
    ...