0

私のdjangoアプリケーションで何か奇妙なことが起こっています.DateTimeFieldを含むモデルがあります:

class Event(models.Model):
    start_time = models.DateTimeField()
    def __unicode__(self):
        return pretty_print_datetime(self.start_time))
def pretty_print_datetime(date):
    return date.strftime('%A, %x, %H Uhr').replace(' 0', ' ')

さらに、一度に複数のイベントを作成できる機能を追加しました。日付はすべて異なりますが、開始時刻は同じでなければなりません。

class EventAdmin(admin.ModelAdmin):
    form = EventForm
    def save_model(self, request, obj, form, change):
        obj.save()
        if not change:
            # Create more events
            repetitions = form.cleaned_data['number_of_repetitions']
            interval = form.cleaned_data['interval_of_repetitions']
            for i in range(repetitions):
                new_event = Event.objects.get(pk=obj.pk)
                new_event.pk = None
                new_event.start_time += timedelta(days=(i+1)*interval)
                new_event.save()

奇妙な部分:イベントを作成するたびに(17:00に開始)、イベント(および自動的に作成される他のすべてのイベント)が「...15:00 + 00」の開始時刻でデータベースに保存されます"。管理インターフェイスではイベントが 17:00 に開始されると表示されるため、心配する必要はありませんが、残念ながら、元のイベントは 17:00 に開始され、他のすべてのイベントは 16:00 に開始されると表示されます。どうすればいいの?データベースが別の形式で保存している場合でも、他のイベントを別の時間に開始するにはどうすればよいでしょうか?

もしそうなら、私はタイムゾーンの認識についてもっと気にかけ始めるべきですか?どうもありがとう!

4

0 に答える 0