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