gpt4 book ai didi

python - Django 测试客户端 POST 不发送数据

转载 作者:行者123 更新时间:2023-12-05 08:12:53 25 4
gpt4 key购买 nike

我正在使用 Django 1.11、Python 3.6 和 Visual Studio,我正在尝试运行我的单元测试,但我在测试用于处理表单的 View 方法时遇到了一些问题。

这是我的测试:

def test_post_newComment(self):
# Login
self.client.login(username="user1", password="user1")

# Data form
data = {'title': 'Test', 'queja':2}

# Response to post client request
response = self.client.post(reverse('newComment'), data)

# Check response
self.assertTrue(isinstance(response, HttpResponseRedirect))
self.assertEqual(response.status_code, 302)
....

这是我的 Views.py 方法,在调试中我可以看到 request.POST 是一个空字典,所以表单永远不会填充到 self.client.post 中。

@login_required(login_url='/login/')
def nuevoComentario(request):
assert isinstance(request, HttpRequest)

# User validation
if not (request.user.is_authenticated):
return HttpResponseRedirect('/login/')

# If the forms has been submitted
if (request.method == 'POST'):
form = NewCommentForm(request.POST)
if (form.is_valid()):
...

request.POST 始终是一个空字典。我尝试将“content_type”参数添加到 self.client.post 请求,但我也得到了相同的结果(request.POST 到达 views.py 方法为空)。

最佳答案

看起来您缺少的是 client.post 中的 data=data

关于python - Django 测试客户端 POST 不发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672133/

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