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