Django测试将发布请求发送到下一个网址

时间:2018-11-24 06:38:55

标签: python django django-forms django-middleware django-tests

我正在编写一个测试用例,在登录后用户重定向到中间件正在调用并显示给用户的表单。因此,现在用户必须提交表单,之后提交用户会将其重定向到普通页面。

middleware.py

def process_view(self, request, view_func, *view_args, **view_kwargs):
    if condition:
        ...
        ...
        return redirect('%s?next=%s' % (reverse('form'), request.path))
    else:
        return  None

form.html

<form action="{% url 'form'%}" method="post">
  <div>
    <input type="radio" id="yes" name="is_accepted" value="yes"  onchange="activateButton(e)" checked>
    <label for="input1" >Yes</label>
    <br>
    <input type="radio" id="no" name="is_accepted" value="no" onchange="activateButton(e)">
    <label for="input2">No</label>
    <input type="hidden" id="next" name="next" value="{{ next }}">
    <button type="submit" name="submit" id="submit">Submit</button>
  </div>
</form> 

提交表单数据后,中间件应立即退出并返回正常页面或下一页。 它在浏览器中可以正常工作,但是在测试表单时会显示出来,但未按请求保存数据。

response = client.post(form_url, {'is_accepted': 'yes'}, follow=True)

在发送发布请求后,响应内容仍然是表单内容。

0 个答案:

没有答案