gpt4 book ai didi

ajax - Django 测试 - 测试处理 ajax 调用的 View

转载 作者:行者123 更新时间:2023-11-28 20:26:38 24 4
gpt4 key购买 nike

在测试 Django 时, View 返回 200 代码但没有发送任何相关的错误消息。

def ajax_view(request):
msg = ''
if request.is_ajax():
username = request.POST['username']
user = User.objects.get(username=username)
msg = 'user exists'

return HttpResponse(msg)

在测试.py

    response = self.client.post(reverse('ajax_view'), data={'username': 'hello'})       
self.assertEqual(200, response.status_code)
self.assertContains(response, 'exist')

它似乎没有通过 request.is_ajax().. 我如何在 Django 测试中模拟 ajax 调用?

最佳答案

docs on the test client提到这个;您需要传递 HTTP_X_REQUESTED_WITH header ,您可以将其作为关键字参数。

此外,如果您将 content_type 作为“application/json”传递,Django 将自动序列化为 JSON。所以:

response = self.client.post(
reverse('ajax_view'),
data={'username': 'hello'},
content_type='application/json',
HTTP_X_REQUESTED_WITH='XMLHttpRequest'
)

关于ajax - Django 测试 - 测试处理 ajax 调用的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53588257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com