如何使用存储的用户配置文件时区而不是在Django中设置时区
在阅读Django的文档时,发现强烈建议在用户的个人资料中存储用户的时区信息。
那么,我该如何使用这个时区值来处理所有日期,而不是使用默认的设置呢?
我是不是每次使用日期都得这样做:
user_tz_str = 'America/Los_Angeles'
user_tz = pytz.timezone(user_tz_str)
users_date = user_tz.localize(datetime.datetime(2012, 3, 3, 1, 30))
或者
user_date = some-date.replace(hour=23, minute=59, tzinfo=user_tz_str)
1 个回答
-1
你可以试试一种方法,比如django-easytz,这个方法是通过Django的中间件来获取用户的时区信息,通常是从会话或者cookie中获取,然后把这个时区设置为当前请求的时区。
我不是这方面的专家,但我觉得这样是可行的。也许你还可以通过其他方式查询用户的时区设置,然后直接把这个设置作为时区,这样就不需要使用cookie或会话了。
一旦在Django框架中设置好了,Django应该会自动处理模板中的日期等内容。我觉得是这样的。