【发布时间】:2014-03-17 02:56:39
【问题描述】:
我正在使用 Django 1.6 和 python 3.3。
我正在尝试使用 django 测试客户端测试 POST 表单,它在发送请求后收到 403。如果我在我的视图方法中添加@csrf_exempt,一切都会完美。
但是 Django 文档说它应该可以正常使用启用的 csrf 保护:
出于这个原因,Django 用于测试的 HTTP 客户端已修改为在请求上设置一个标志,从而放松中间件和 csrf_protect 装饰器,以便它们不再拒绝请求。
这是我的测试代码:
def testSimple(self):
c = Client('Chrome 1.0')
from partners.views import cashier
response = c.post(reverse(cashier.simple), {'x': 123})
self.assertContains(response,'html')
这是一个视图:
def simple(request):
return render(request, 'partners/cashier/index.html')
当我运行这个测试时,我看到:
断言错误:403 != 200
那么,你能告诉我我做错了什么吗?
【问题讨论】:
标签: python django testing csrf django-testing