Django:DateTime在我的数据库中保存时不好
这看起来很愚蠢,但我很难在db上保存我的约会时间。我对Python非常陌生,我不是每天都在操纵datetime。 当我保存我的价值时,我有一个小时的差异。所以18小时现在是17小时(对不起我的英语) 我的模型是这样的:Django:DateTime在我的数据库中保存时不好,django,python-2.7,Django,Python 2.7,这看起来很愚蠢,但我很难在db上保存我的约会时间。我对Python非常陌生,我不是每天都在操纵datetime。 当我保存我的价值时,我有一个小时的差异。所以18小时现在是17小时(对不起我的英语) 我的模型是这样的: class Event(models.Model): title = models.CharField(max_length=245) description = models.TextField(max_length=750, null=True, blank
class Event(models.Model):
title = models.CharField(max_length=245)
description = models.TextField(max_length=750, null=True, blank=True)
start = models.DateTimeField()
end = models.DateTimeField()
created_at = models.DateTimeField(editable=False)
updated_at = models.DateTimeField(editable=False)
slug = AutoSlugField(populate_from='title', unique=True, editable=False)
nb_participant = models.PositiveSmallIntegerField(default=1)
price = models.PositiveSmallIntegerField(default=0)
user = models.ForeignKey(User, editable=False, related_name='author')
address = models.ForeignKey('Address', editable=False, related_name='events')
participants = models.ManyToManyField(User, related_name='participants', blank=True)
class Meta:
db_table = 'event'
def save(self, *args, **kwargs):
if not self.pk:
self.created_at = timezone.localtime(timezone.now())
print self.created_at
self.updated_at = timezone.localtime(timezone.now())
super(Event, self).save(*args, **kwargs)
如您所见,我有4个datetime字段。2实际上是在创建模型时自动保存的
我通过使用timezone.localtime(timezone.now())而不是timezone.now()解决了这个问题。我在这一页的底部找到了。但是他们说在大多数情况下使用timezone.now()。所以我不知道为什么我有一个小时的差异
我还有另外两个字段从angular前端发送到API(使用django rest框架)
我放了一张截图。我发送的第一个对象是angular。正如您所看到的,日期格式很好。
第二个对象是来自API的响应,我已经损失了一个小时(因此GMT+1)
为什么??我完全被阻止了,所以如果有人有解决办法,我会非常高兴:)
My settings.py:
LANGUAGE_CODE = 'fr-fr'
TIME_ZONE = 'Europe/Paris'
USE_L10N = True
USE_TZ = True
谢谢。在设置文件中尝试使用USE_TZ=False,并使用normal datetime.now()。谢谢,很抱歉这么晚才回复。当我使用False时,我的mysql后端似乎有另一个。我现在没有时间调查这一点。但经过一些阅读,我决定继续使用时区,它似乎是更好的解决方案,并且该值在模板中显示良好。