APIClient.enforce_csrf_checks和APIClient.handler.enforce_csrf_checks有什么区别

时间:2015-07-08 19:20:30

标签: python unit-testing django-rest-framework

当我创建处理程序

时,我注意到了
newClient = APIClient(enforce_csrf_checks=True)

newClient.enforce_csrf_checks = False 

但是

newClient.handler.enforce_csrf_checks = True

有什么区别?我问这个是因为我有一个现有的API客户端,我想知道其中的区别:

class ModifyTest(APITestCase):
    def setUp(self):
        self.client.enforce_csrf_checks = True          # Do this?
        self.client.handler.enforce_csrf_checks = True  # Or Do this?

1 个答案:

答案 0 :(得分:0)

初始化APIClient时,a ForceAuthClientHandler is initialized的值为enforce_csrf_checksdefault is False)。这就是client.handler的含义,以及client.handler.enforce_csrf_checksTrue的原因。

看起来client.enforce_csrf_checksclient.handler.enforce_csrf_checks更受欢迎,但如果需要,它会退回。