Я пытаюсь получить последние n часовых строк из таблицы и распечатать их дату и время в заданном часовом поясе, указан часовой пояс для использования при печати дат, я пытаюсь использовать активацию, чтобы заставить django возвращать дату и время с правильным часовым поясом, но это возвращает даты в формате UTC.
вот мой текущий код:
min_time = datetime.datetime.now(link.monitor.timezone) - datetime.timedelta(hours=period)
timezone.activate(link.monitor.timezone)
rows = TraceHttp.objects.values_list('time', 'elapsed').filter(time__gt=min_time,link_id=link_id,elapsed__gt=0)
array = []
for row in rows:
array.append((row[0].astimezone(link.monitor.timezone),row[1]))
Я хочу избежать использования функции astimezone и заставить Django сделать это за меня, иногда мне не хватает функции активации?
РЕДАКТИРОВАТЬ
Вот мои модели, как вы можете видеть, отображаемый часовой пояс сохраняется в модели «монитор»:
class Link(models.Model):
...
monitor = models.ForeignKey(Monitor)
...
class Monitor(models.Model):
...
timezone = TimeZoneField(default='Europe/London')
class TraceHttp(models.Model):
link = models.ForeignKey(Link)
time = models.DateTimeField()
elapsed = models.FloatField()