我正在编写一个测试用例,在登录后用户重定向到中间件正在调用并显示给用户的表单。因此,现在用户必须提交表单,之后提交用户会将其重定向到普通页面。
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)
在发送发布请求后,响应内容仍然是表单内容。