2016-03-21 14 views
0

私は、datetimeオブジェクトのタイムゾーンを変更する正しい方法と正しくない方法に関する多くのドキュメントやその他の質問を読んだことがあります。私は適切な使用法がpytzであり、.localizeや.astimezoneを使用し、.replaceを使用しないことを認識しています。手動でDjango形式のタイムゾーンを設定する

私はユーザーがフォームにタイムゾーンを入力する方法を理解しようとしています。ユーザーのタイムゾーンを決定するためにローカライズされたブラウザ設定を使用する必要はありません。ユーザーは、datetimeオブジェクトがデータベースに保存される前に、datetimeオブジェクトに適用されるタイムゾーンを指定できる必要があります。私はすでにdjango-timezone-fieldのTimeZoneFieldをモデルに入れましたが、それをdatetimeオブジェクトに適切に適用する方法を理解することはできません。

実際に試したことはすべて時間を変換します。これはPythonではなくテンプレートのjavascriptで行う必要がありますか?

答えて

1

.replace(tzinfo=None)を使用してdatetimeをnaiveにします。 (ref

次に、タイムゾーンフィールドからtz.localizeを使用してタイムゾーンを適用します。 (ref

+0

ビュー内のform_valid関数をオーバーライドしてこのメ​​ソッドを使用すると、うまくいくように見えますが、非常にハック感があります。ナイーブなdatetimeオブジェクトを渡すためのフォームを取得する方法があるはずのように感じます。 回答ありがとうございます。私はこれを達成するためのよりクリーンな方法を見つけることができない場合は、少なくとも今私を取得します。 – mattsl

関連する問題