我有一个测试,我正在检查一些身份验证行为.在此测试中,我需要显式检查CSRF行为,因此我使用的测试客户端enforce_csrf_checks设置为True:
self.csrf_client = Client(enforce_csrf_checks=True)
Run Code Online (Sandbox Code Playgroud)
我的问题是,对于我来说,最简单的方法是手动获取CSRF令牌,并通过POST请求发送给我的客户端?
是定义返回的自定义测试视图,csrf(request)向该视图发出请求,提取CSRF令牌然后在POST请求中使用它的最佳选择,还是有一些更简单的方法可以使用CSRF令牌?
Dan*_*son 11
我知道这是一个老问题,但我在寻找解决方案时偶然发现了这一点,现在我想分享我的解决方案以防其他人对此有问题.
在您登录后,CSRF令牌确实存储在cookie中,并且访问它时我必须执行以下操作:
self.client = Client(enforce_csrf_checks=True)
self.client.login(username='temporary', password='temporary')
self.client.get("/url_to_the_form/")
csrf_token = self.client.cookies['csrftoken'].value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5858 次 |
| 最近记录: |