>我有这个观点:
def send_results(request):
print request
if request.is_ajax():
address = request.POST.get('url')
process_data(address)
context = get_all_from_database()
return HttpResponse(json.dumps(context), content_type='application/json')
我需要测试它:
def test_send_results(self):
factory = RequestFactory()
request = factory.get('/views/send_results')
response = send_results(request)
self.assertEqual(response.status_code, 200)
但在我看来,在分配之前引用"地址"值总是出错。如何传递它一些值?
如果request.is_ajax()
False
则在调用process_data(address)
之前不会分配address
。如果要测试 AJAX 请求,则应传递 HTTP_X_REQUESTED_WITH
标头:
request = factory.get('/views/send_results', HTTP_X_REQUESTED_WITH='XMLHttpRequest')
但是,当请求不是 AJAX 请求时,您仍然需要修复视图以处理这种情况。