Django中的crsf_token与单元测试报错

在Django 2.2版本中,当在单元测试中遇到添加了{% csrf_token %}的模板时,出现了错误。问题源于测试响应中的csrf令牌与render_to_string()生成的内容不匹配。解决方案是通过在render_to_string()中添加request参数,但该方法在Django 1.8+版本中才适用。最终,通过正则表达式忽略{% csrf_token %}解决了问题,提醒开发者注意版本差异并及时查找解决方案。
摘要由CSDN通过智能技术生成

在学习《Python Web开发:测试驱动方法时》,作者使用的django版本是1.7,笔者使用的版本是2.2,这就导致了一些执行文中的代码时出现一些问题。
比如,在之前执行一直没有出错的单元测试tests.py代码,在第五章引入表单之后,home.html模板中需在 标签内添加CSRF令牌{% csrf_token %},添加csrf令牌之后,再执行单元测试代码

python manage.py test

出现以下报错:
在这里插入图片描述
定位原因是单元测试文件中断言语句出现错误,
在这里插入图片描述
然后,注释这条断言语句,改成将两个内容分别输出来定位原因:
在这里插入图片描述
输出结果如下:
在这里插入图片描述
从输出结果可以看出,通过视图函数home_page()得到的响应包含c

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值