Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 测试通过Ajax视图提交的Django表单_Python_Json_Django - Fatal编程技术网

Python 测试通过Ajax视图提交的Django表单

Python 测试通过Ajax视图提交的Django表单,python,json,django,Python,Json,Django,我正在尝试测试Ajax使用的视图。当服务器(手动测试)一切正常时,当我运行单元测试时,出现了一个无法解释的错误 如果您看一下下面几行,我将尽可能简化我的代码,您将看到,尽管我向json dict添加了一个名为某物的变量(就像我在ajax中所做的那样),但表单中似乎缺少该字段 我的测试(tests.py): 当我的Ajax视图工作时,我的测试提供了以下回溯: b'{"something": ["This field is mandatory."]}' Failure Traceback (mos

我正在尝试测试Ajax使用的视图。当服务器(手动测试)一切正常时,当我运行单元测试时,出现了一个无法解释的错误

如果您看一下下面几行,我将尽可能简化我的代码,您将看到,尽管我向json dict添加了一个名为某物的变量(就像我在ajax中所做的那样),但表单中似乎缺少该字段

我的测试(
tests.py
): 当我的Ajax视图工作时,我的测试提供了以下回溯:

b'{"something": ["This field is mandatory."]}'

Failure
Traceback (most recent call last):
  File "***\tests.py", line 81, in ***
    self.assertEqual(response.status_code, 200)
AssertionError: 400 != 200
我在考试中做错了什么

代码的其余部分: 我的视图(
views.py
): 我的JS(
something.JS
):
和代码来处理响应

我希望我能得到一个更好的解决方案,但现在,我的解决方案是删除
内容类型
并发布一本字典

tests.py
中,var
响应的代码为:

  response = self.client.post(reverse('edit_something'), data)
这使视图接收适当的值,而当我添加
content\u type='application/json'
时,视图
request.POST
为空

def edit_something(request):
    if request.method == 'POST':
        form = CustomForm(request.POST)

        if form.is_valid():
            form.save()

            response_code = 200
            response_data = {'something':'updated')

        else:
            response_code = 400
            response_data = form.errors

        return JsonResponse(
            response_data,
            status=response_code,
        )
$.ajax({
    url : form_endpoint, // the endpoint
    type : "POST", // http method
    data : {
        something: 'data',
    },// data sent with the post request
  response = self.client.post(reverse('edit_something'), data)