django でタイムゾーンを使用できないようです。ここでこれを読みましたが、適用しようとすると機能しません。
私のモデル
class Model(models.Model)
name = models.CharField(max_length=30)
date = models.DateTimeField()
私の見解は次のとおりです。
from django.utils.timezone import timezone
def view(request):
today = datetime.now().replace(tzinfo=utc)
model = Model.objects.filter(date__gte=today, date__lte=today + timedelta(days=2)
return render_to_response('template.html', {'models':model}, context_instance=RequestContext(request)
私のtemplate.htmlで
{%for model in models%}
{{model.date.hour}}:{{model.date.hour}} - {{model.name}}
{%endfor%}
私の設定ファイル
TIME_ZONE = 'Europe/Athens'
USE_TZ = True
USE_L10N = True
したがって、USE_TZがtrueの場合、日時はUTCでデータベースに保存され、djangoはそれらをフォームに提示するときに(TIME_ZONE変数に従って)ローカルタイムで表示しますが、私のテンプレートはデータベースに保存されている日付を表示します(現地時間から 2 時間遅れていることを意味します (例: 18:30 が必要だったのに、16:30 を節約し、16:30 を示しています)。私は試した
{%load tz%}
{%for model in models%}
{{model.date.hour|localtime}}:{{model.date.minute|localtime}} - {{model.name}}
{%endfor%}
なし。より正確には、日付がまったく表示されず、空白になりました。私は試した
{%load tz%}
{%for model in models%}
{%localtime on %}
{{model.date.hour}}:{{model.date.time}} - {{model.name}}
{%endlocaltime%}
{%endfor%}
しかし、時間は変更されずにそのまま残りました。
問題は、私のテンプレートの下部で、これを同様の for で行うことです
{{model.date}} - {{model.name}}
日付は正しいタイムゾーンで表示されますが (たとえば、14:30 が 16:30 になります)、24 時間形式では表示されません (保存したとき)。誰かがタイムゾーンとジャンゴでそれを完全にクリアするのを少し手伝ってくれますか