我正在尝试在我的Django项目中测试和AJAX视图。当从JQuery提交帖子时,可以在Django View中正确访问数据,但是当我尝试对Django测试客户端进行查询时,它是真实的。
以下是我使用的代码:
视图
def add_item(request):
if request.is_ajax() and request.method == 'POST':
post_data = request.POST
print post_data ## <----- THIS IS EMPTY
name = post_data.get('name')
# Render the succes response
json_data = json.dumps({"success":1})
return HttpResponse(json_data, content_type="application/json")
else:
raise Http404
测试
class TestAddItem(TestCase):
def test_some_test(self):
data = {
'description':"description",
}
response = self.client.post('theurl', data, content_type='application/json')
任何想法我可能做错了什么?
我也试过没有内容类型,也使用像thurl/?name=name
这样的简单网址而没有成功。
任何帮助将不胜感激。
奥利弗
答案 0 :(得分:0)
尝试不同的参数格式组合,内容类型等。 我找到了一个有效的解决方案:
response = self.client.post(reverse('theurl'), data,
**{'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'})
我在请求的POST参数上得到以下字典:
<QueryDict: {u'name': [u'name']}>
编辑我喜欢测试:)