我将日期时间信息存储在数据库中作为UTC。我正在使用Django admin显示此信息。
有没有办法在Django admin中向最终用户的当前时区显示日期时间信息?
通常我认为这个逻辑将在模板/视图层中,然而,Django-admin隐藏了这一切,你似乎我必须覆盖许多隐藏文件(我不想做)。
一个想法是在模型中继承DateTimeField,并使其在从数据库中获取时将其转换为本地时区,但我不确定这是否有效。
有人有什么建议吗?谢谢。
答案 0 :(得分:6)
Django 1.4将引入时区支持,但管理员仍然没有使用它。关于哪个时区实现“祝福”(pytz)仍然存在问题,在哪里存储每个用户的时区(没有内置模式迁移auth.User基本上无法触及而不强迫每个Django用户同步他们的数据库),并且还没有用于时区选择的UI。
所以零件在那里,但现阶段仍然是DIY,抱歉。
请参阅我在django-developers上开始的主题 http://groups.google.com/group/django-developers/browse_thread/thread/1386a2bf73babc6a
答案 1 :(得分:3)
即将发布的Django 1.4即可获得本地化时区支持。
答案 2 :(得分:0)
如果您知道要使用的时区,则有一些技术可以导致数据输入并在管理员中显示以使用该时区。请参阅博客文章https://www.caktusgroup.com/blog/2014/01/09/managing-events-explicit-time-zones/
在我的情况下,所有管理员用户都在服务器的时区,所以我能够使用这种方法让管理员使用该时区。请注意,这是基于每个字段而不是全局完成的,但我不知道如何使date_hierarchy使用相对于此时区的日期。