0

私はこの質問が初めて議論されたことを知っていますが、私は問題に固執し、少し混乱しました.

したがって、時間内にリマインダーを送信する必要があるセロリ タスクがあります。

私の設定では:

USE_TZ = True
TIMEZONE = 'Asia/Singapore'

たとえば、次のようなモデルがあります。

class Reminder(models.Model):
    created =  models.DateTimeField(default=timezone.now)

これは単純化されたモデルで、より多くのフィールドがありますが、DateTime フィールド内に配置する際に問題があります。

それで、私はdjangoシェルを開いて、次のような時間を取得します:

timezone.now()
reminder.created

次のように UTC で適切な時刻を示します。

datetime.datetime(2016, 12, 22, 8, 47, 43, 370101, tzinfo=<UTC>) #tz now
datetime.datetime(2016, 12, 22, 8, 47, 43, 370101, tzinfo=<UTC>) #reminder created

しかし、コンソールからタスクを実行し、印刷を設定するか、ipdb でデバッグを試みると、上記の時間で取得できます。

2016-12-22 09:17:19.141242+00:00 # tz now
2016-12-22 16:52:43.366542+00:00 # reminder time CONVERT UTC+8 like Singapore but it became UTC now!!!

だから、私はそれがどのように進んでいるのか理解できません。もちろん、この場合、日時を正しく比較することはできません。

Django 1.8 と DB PostgreSQL

4

0 に答える 0