Django-使用不同的时区

时间:2019-06-21 05:05:35

标签: django timezone

我正在研究Dietitian Portal上的Django应用程序,该应用程序中有来自不同国家的客户。现在要为客户进行预约,我需要根据营养师的时区向用户发送可用的时间段。现在的问题是,如果营养师的时区是Asia / Calcutta并且客户的时区是Us / Eastern或其他。当客户要求空位时,日期是19,营养师的时区是20,那么我该如何管理我可以覆盖客户所在时区的营养师全天

如果日期相同,但如果存在两个不同的日期而不是问题,那么效果很好。客户端无法获取营养师广告位,因为
根据营养师的时区日期是20日。

2 个答案:

答案 0 :(得分:1)

我认为您可以对documentation中提到的步骤采取类似的方法:

首先,从用户获取时区信息:

from pytz import country_timezones

class User(...):
    country_code = models.CharField(...)

    def get_tz_info(self):
       return country_timezones(self.country_code)[0]

然后,编写一个MIDDLEWARE来激活本地化的时区:

import pytz

from django.utils import timezone
from django.utils.deprecation import MiddlewareMixin

class TimezoneMiddleware(MiddlewareMixin):
    def process_request(self, request):
        tzname = request.user.get_tz_info()
        if tzname:
            timezone.activate(pytz.timezone(tzname))
        else:
            timezone.deactivate()

答案 1 :(得分:0)

您可以使用UTC时区-link。您可以在settings.py中找到此代码(如果未添加此代码-

df1 <- structure(list(Columna = c("Tom", "Greg", "Troy", "Daniel", "John", 
"Tom", "Lisa", "Greg"), Columnb = c("K", "R", "K", "R", "K", 
"R", "K", "R"), Columnc = c("Adam", "Adam", "Lisa", "Lisa", "Greg", 
"Greg", "Adam", "Adam")), class = "data.frame", row.names = c(NA, 
-8L))

您的浏览器将自动转换为本地时区