首页 > 解决方案 > DRF:在测试时设置语言

问题描述

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

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

这就是我的测试的样子:

    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

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

标签: pythondjangodjango-rest-frameworkdjango-unittest

解决方案


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

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

推荐阅读