我正在尝试在我的Django应用程序中测试一些post方法,但是由于csrf_token
,我无法在没有浏览器的情况下测试它。所以我用过
@csrf_exempt
装饰者
但是我忘了在生产中移除那些装饰器。还有更好的方法吗?
@csrf_exempt(in_debug_only=True)
因此,只有当应用程序处于调试模式时,此装饰器才处于活动状态。或者有更好的方法来测试发布请求吗?
像selenium
可能有一些方法可以做到这一点吗?
注意:我目前正在使用Django 1.7.2和Python 3.4.1
答案 0 :(得分:1)
灵感来自this answer:
您可以在应用中添加新文件,我们称之为 disable_csrf.py :
class DisableCSRF(object):
def process_request(self, request):
setattr(request, '_dont_enforce_csrf_checks', True)
然后您可以修改 settings.py 来添加:
if DEBUG:
MIDDLEWARE_CLASSES += myapp.disable.DisableCSRF
让我知道它是否有效。