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

What is the difference on APIClient.enforce_csrf_checks and APIClient.handler.enforce_csrf_checks

我注意到当我创建一个处理程序时

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?

当您初始化 APIClienta ForceAuthClientHandler is initialized with the value of enforce_csrf_checks (default is False) 时。这就是 client.handler 的含义,这就是为什么 client.handler.enforce_csrf_checks 在您的情况下是 True 的原因。

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