在django,csrf_token上测试帖子请求

时间:2015-05-13 22:27:31

标签: django python-3.x django-csrf

我正在尝试在我的Django应用程序中测试一些post方法,但是由于csrf_token,我无法在没有浏览器的情况下测试它。所以我用过     @csrf_exempt装饰者 但是我忘了在生产中移除那些装饰器。还有更好的方法吗?

@csrf_exempt(in_debug_only=True)

因此,只有当应用程序处于调试模式时,此装饰器才处于活动状态。或者有更好的方法来测试发布请求吗?

selenium可能有一些方法可以做到这一点吗?

注意:我目前正在使用Django 1.7.2和Python 3.4.1

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

让我知道它是否有效。