Джанго - Работа с разными часовыми поясами - PullRequest
1 голос
/ 21 июня 2019

Я работаю над приложением Django на портале Dietitian, в котором есть клиенты из разных стран. Теперь для назначения бронирования для клиента мне нужно отправить пользователю доступные временные интервалы в соответствии с часовым поясом диетолога. Теперь проблема в том, что если часовой пояс диетолога - Азия / Калькутта, а часовой пояс клиента - Us / Eastern или др. Когда клиент запрашивает слоты, то существует дата 19 и 20-й часовой пояс диетолога. Так как я могу это сделать, если я может охватывать весь день диетолога в часовом поясе клиента

Работает нормально, если дата совпадает, но если есть две разные даты, чем проблема. Клиент не может выбрать ячейки диетолога, потому что
в соответствии с часовым поясом диетолога - 20-е.

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Я думаю, что вы можете использовать подход, аналогичный описанному в 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()
0 голосов
/ 21 июня 2019

Вы можете использовать часовой пояс UTC - ссылка . Вы можете найти этот код в вашем settings.py, если не поставить это -

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

Ваш браузер автоматически конвертирует в местные часовые пояса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...