【发布时间】:2019-10-23 13:23:33
【问题描述】:
我想听听您对我处理时区的做法的看法,如下所示。是正确的?我应该担心更多细节吗?
系统的每个客户端/用户都位于不同时间的区域,所以我在模型中放入了标识该区域的记录:
在模型中:
TIMEZONES = tuple(zip(pytz.all_timezones, pytz.all_timezones))
timezone = models.CharField (
null = False,
blank = False,
max_length = 32,
choices = TIMEZONES,
default = 'UTC',
verbose_name = "timezone",
help_text = "Timezone"
)
当用户登录时,settings.py TIME_ZONE 变量根据登录用户的时区变化:
登录时:
from django.conf import settings
settings.TIME_ZONE = timezone
当我进行游标查询时,我在 settings.py 中设置时区:
在查询中:
from django.conf import settings
timezone = settings.TIME_ZONE
query = "" "
SET TIMEZONE = '{}';
...
"" ".format (timezone)
在模板中,我启用了时区:
在模板中:
...
{% load tz%}
...
{% localtime on%}
...
{% endlocaltime%}
我希望我在上面的演示中很清楚。如果您需要更多详细信息,我可以提供。
感谢您分享您的经验。
【问题讨论】:
-
设置模块并不意味着像那样动态使用。动态设置当前时区的方法是使用
activate(),如here 所述。我不确定“光标查询”是什么意思;你是说你使用的是原始查询而不是 Django 的 ORM?