Как установить нужный timezone для datetime?
Для получения текущего времени с временной зоной (локализованное время) нужно использовать now() не из datetime, а из django.utils.timezone:from django.utils.timezone import now
Чтобы преобразовать уже локализованный datetime в другую временную зону (например во временную зону пользователя):from django.utils.timezone import now, pytz
user_timezone = pytz.timezone(user.timezone or settings.TIME_ZONE)
now().astimezone(user_timezone)
Если у вас нелокализованный datetime и вы хотите добавить ему информацию о временной зоне:from datetime import datetime
from django.utils.timezone import pytz
user_timezone = pytz.timezone(user.timezone or settings.TIME_ZONE)
user_timezone.localize(now())
Для того, чтобы Djagno использовало временные зоны для полей Date/Datetime нужно, они должны быть включены в настройках:TIME_ZONE = 'Europe/Moscow'
USE_TZ = True
создать перечень временных зон. Типа Pacific/fiji. Что пользователь мог выбрать свою временную зону и она записалась к нему в док. Далее при выводе даты и времени нужно использовать модель либо функцию  с переводом времени которое он выбрал в время сервера и наоборот. Нужно одно заметить что все данные что бы писались во времени сервера, тобишь если пользователь с какой то временной зоной вводит дату например звонка, то что бы эта дата писалась не в его дате а в дате сервера.