DRF:测试时设置语言

DRF: Set language while testing

我有一个带有 DateField 的序列化程序,它根据用户的语言设置进行了本地化。

我想编写一个测试并验证格式是否正常工作,但我不知道如何在使用 APIClient 时设置所需的语言。

我的测试是这样的:

    self.api_client = APIClient()
    # ....

    url = reverse("view_name", kwargs={...})
    self.api_client.force_authenticate(user=self.user)
    response = self.api_client.get(url, format="json", follow=True)
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    
    # asserts

通过这种方式,测试成功地适用于我的默认语言设置。如何明确设置此请求的语言代码。

可以在初始化 APIClient 时直接设置语言 header。

self.api_client = APIClient(HTTP_ACCEPT_LANGUAGE="de")