繁体   English   中英

Django API 客户端获取带负载的请求

[英]Django API Client Get Request with Payload

我正在寻找这是否可能。 如果我在 postman 中发送带有正文的 get 请求,我会得到符合我需要的结果。

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

这是我的代码;


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

有点hacky,但似乎有效:

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)
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM