django 1.4如何从客户端自动获取用户的时区

xpa*_*nta 13 python django timezone

我想知道是否有办法从客户端自动检索用户的时区.特别是在登录时.

我试图在登录页面中添加它(使用auth.login):

{% get_current_timezone as TIME_ZONE %}
Run Code Online (Sandbox Code Playgroud)

然后在登录表单中添加它

<input type="hidden" name="next" value="/redirect/?tz={{ TIME_ZONE }}">
Run Code Online (Sandbox Code Playgroud)

tz始终是服务器的时区.

Blu*_*ict 14

文档:

选择当前时区

当前时区等同于当前翻译的区域设置.但是,没有相当于Django可以用来自动确定用户时区的Accept-Language HTTP标头.相反,Django提供时区选择功能.使用它们来构建对您有意义的时区选择逻辑.

您可以尝试使用getTimezoneOffset函数通过javascript设置时区cookie,或尝试按位置执行一些geoip魔术和图形时区.可能最可靠的方法是直接询问用户并将此信息保存在用户配置文件/会话中.

  • 在你尝试做'geoip magic'之前,看一下@ Rich的答案 - 我只花了几分钟来安装和配置他的插件. (3认同)

Ada*_*ock 8

昨天我正在寻找山姆的东西.最后,我最终将Django应用程序整合到BluesRockAddict上面建议的内容中(即使用getTimezoneOffset):

https://github.com/adamcharnock/django-tz-detect

我希望有人觉得有用.