AJAX请求的Django模型翻译



我已经安装了Django模型翻译包,几乎一切都很好。。。

唯一没有的是AJAX请求,其JsonResponses仍以原始语言返回。我在文档中找不到如何修复它。

我使用的是'django.middleware.locale.LocaleMiddleware'中间件,因此LANGUAGE_CODE的选择应该基于请求中的数据(即用户的浏览器设置(。显然,AJAX请求没有得到备忘录。

有没有办法让服务器知道AJAX请求传入的LANGUAGE_CODE(而不是在URL中硬编码(?

我在Django论坛上得到了答案^_^

我被告知要查看XHR对Content-Language参数的请求(我甚至不知道XHR有语言参数(。就在那时,我看到内容语言的定义是正确的。

所以AJAX只是转移注意力。

以下是我的观点:

obj_list = list(self.object_list.values('fk__name', 'data'))
return JsonResponse({'chart_data': obj_list})

问题在于values方法。使用它时,不会使用django-modeltranslation创建的字段。

我把它换成了这些:

return JsonResponse(
{
"chart_data": [
{"fk__name": o.fk.name, "data": o.data}
for o in self.object_list.select_related('fk')
]
}
)

不知道列表理解是否是一种最佳实践,但现在一切都正常了!

最新更新