テーブルから過去 n 時間の行を取得し、指定されたタイムゾーンで日時を印刷しようとしています。日付を 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()