0

mysql をデータベースとして使用する django モデルがあり、タイムゾーン サポートを使用しています。モデルに日付を持つフィールドがあります。

mysql は日付フィールド内にタイムゾーン情報を保存できないため、タイムゾーン オフセットを別のフィールドに保存します。データベースにクエリを実行するとき、データベースに保存されているオフセットを使用して、すべての日付をタイムゾーン対応に変換したいと考えています。

私のモデルは次のようになっていると想定できます。

class Item(models.Model):
    pubDate = models.DateTimeField(verbose_name="publish date")
    pubDate_tz = models.IntegerField()

現在、私のクエリは次のとおりです。

items = Item.objects.all().filter(channel__category = category, pubDate__range=[today_date, tomorrow_date]).order_by('-pubDate')

しかし、私のテンプレートでは、item.pubDate を使用してローカル タイムゾーンに自動的に変換したいと考えています。

ありがとう。

4

1 に答える 1

0

クエリで timezone.make_aware を使用してみてください。

ここのドキュメントの情報 https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.make_aware https://docs.djangoproject.com/en/dev/topics/i18n/timezones /

timezone_aware 変換の基本的な例:

today = timezone.now()

today_aware = timezone.make_aware(time_ago, timezone.get_default_timezone())

timezone.now を item.pudbat クエリに置き換えます

タイムゾーンが常に同じである場合は、2 番目の引数 (timezone.get_default_timezone) を使用してタイムゾーンを設定できます。タイムゾーンが変更された場合は、データベースからの値として設定できるはずです。

于 2014-01-17T16:10:05.683 に答える