2012-04-25 10 views
1

私は最終的にSMSメッセージで送信するテキストの広場を構築しようとしています。 blurbには、タイムゾーンとしてUTCを持つdatetimeオブジェクトのテキストが含まれていますが、代わりにユーザーのタイムゾーン用にローカライズされたテキストが必要です。私はユーザーのタイムゾーンをdbに格納しています。django-strとdatetimeの間にユーザのタイムゾーン

timezone.activate()とtimezone.deactivate()を使用して現在のタイムゾーンを変更することができますが、これが最善のものかどうかはわかりません。ユーザーのローカルタイムゾーンでプリントする日時。たとえ短時間であっても、現在のタイムゾーンを変更するとシステムに望ましくない結果が生じるかどうかはわかりません。

答えて

2

timezone.activate()を使用してタイムゾーンを有効にすると、現在の要求にのみ影響するため、実際には「望ましくないシステムへの影響」はありません。ミドルウェアでタイムゾーンを活性化することによって

from django.utils import timezone 

class TimezoneMiddleware(object): 
    def process_request(self, request): 

     if request.user.is_authenticated(): 
      timezone.activate(request.user.get_profile().timezone) 

あなたのSMSテンプレートに{{ datatime }}パラメータを使用して、ユーザーのローカル時間をレンダリングできるようになります。

関連する問題