2016-10-10 8 views
1

2016,9,25の2つのエントリと2016,9,26の2つのエントリを持つデータベースにアクセスしようとしています。異なる時間が...私は以下の私のテンプレートでtask.start_timeを使用して、それらの各々をリストして表示することは、私はdjangoの日付フィルタは、翌日から私に井戸としてのエントリを与えます

TASK  Task.title     duration start_time     project  project_color user 
1st task This is the first task  0:02:40  Sept. 25, 2016, 11:42 p.m. Unassigned NO COLOR faizank 
2nd task This is the second task  0:01:30  Sept. 25, 2016, 11:47 p.m. Unassigned NO COLOR faizank 
3rd task asdasdasdasd    0:20:00  Sept. 26, 2016, 12:19 a.m. Unassigned NO COLOR faizank 
3rd task this is the problem   0:20:00  Sept. 26, 2016, 12:22 a.m. Unassigned NO COLOR faizank 

のstart_timeが、今私は、次を使用してDateTimeオブジェクトをフィルタリングしています、datetime_fieldあり得るリストですこれは私に

を与える

>>> c= Task.objects.filter(start_time__date=datetime.date(2016,9,25) 

を問い合わせます

<QuerySet [<Task: 1st task>, <Task: 2nd task>, <Task: 3rd task>, <Task: 3rd task>]> 

が、私は26に日付を変更するとき、それは私の空のセットを提供します....

私もこの

>>> c= Task.objects.filter(start_time__date=datetime.datetime(2016,9,25,0,0,0,0,pytz.UTC) 

は、同じ結果を得ました。

だから私はちょうど、考え出し:26からエントリを返す日付は同様である....と26を照会の上、それは空のセットを返します....

EDIT 1だから、なぜ

日付が異なる時間で格納されている、私はテンプレートが実際の時間を表示しない理由を知らない。したがって、上記のエントリーの場合は私が実際の時刻を確認し、次を発見した...

>>> d= <QuerySet [<Task: 1st task>, <Task: 2nd task>, <Task: 3rd task>, <Task: 3rd task>]> 
>>> d[2].start_time 

と明らかに第三タスクが異なる時間に格納されていることを示し、次の

datetime.datetime(2016, 9, 25, 19, 19, 59, 477000, tzinfo=<UTC>) 

を得ましたそれがテンプレートに表示されているもの、実際にはGMTで表示されている時間からちょうど-5hだと思うので、今実際の質問はテンプレートが同じモデルの異なる時間を表示している理由ですもっと重要なのはどうすれば修正できるのか...

+0

あなたの['USE_TZ'](' https://docs.djangoproject.com/ja/1.10/ref/settings/#std:setting-USE_TZ)varは 'True'に設定されていますか? – brianpck

+0

はい、それは......... – fazkan

答えて

2

Django QuerySet reference for dateUSE_TZがTrueの場合

は、フィールドがフィルタリングする前に現在のタイムゾーンに変換されます。

この2つのタスクが真夜中の直後に発生するとすれば、設定したタイムゾーンへの変換が原因で問題が発生している可能性があります。

+0

私の友人の右に、今私の問題は、私がバックエンドでフィルタリングするときは時間が異なり、テンプレートで表示すると時間が違うことです。ユーザーが自分のタイムゾーンに時間が欲しいと思っていると仮定すると、ユーザーが実際に望んでいるものに基づいてどのようにフィルタリングすることができますか。実際に26の値の値を実際に取得するには、 sept .... – fazkan

+0

私はすべてのクエリから-5を差し引くことができますが、より良い方法がなければならないと考えています。 – fazkan

+0

どうもありがとう、私は今何時間もこれを傷つけました。私のユーザーが時間を意識して情報を保存したいのであれば、use_tzを無効にしてください。これを読んでいる将来の読者は、あなたが何をしているのか分からない限り、 ... – fazkan

関連する問題