【问题标题】:Django: DateTime not good when saved on my databaseDjango:保存在我的数据库中时,日期时间不好
【发布时间】:2014-01-20 18:58:32
【问题描述】:

这似乎很愚蠢,但我很难将我的 dateTime 保存在数据库上。我是 Python 的新手,我不是每天都在操纵日期时间。 当我保存我的价值时,我有一个小时的差异。所以 18 小时现在是 17 小时(对不起我的英语)

我的模型是这样的:

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 个带日期时间的字段。 2其实是模型创建时自动保存。

我通过使用 timezone.localtime(timezone.now()) 而不是 timezone.now() 解决了这个问题。我发现页面底部有enter link description here。但他们说在大多数情况下使用 timezone.now() 。所以我不知道为什么我有这个一小时的差异。

我还有另外两个字段从我的 Angular 前端发送到我的 API(使用 django rest 框架) 我放了一个截图。我通过 angular 发送的第一个对象。如您所见,日期格式正确。 第二个对象是我的 API 的响应,我已经失去了一个小时(所以 GMT +1)

为什么?我完全被阻止了,所以如果有人有解决方案,我会很高兴:)

我的设置.py:

LANGUAGE_CODE = 'fr-fr'

TIME_ZONE = 'Europe/Paris'

USE_L10N = True

USE_TZ = True

谢谢。

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

    在设置文件中尝试使用 USE_TZ=False,并使用正常的 datetime.now()。

    【讨论】:

    • 谢谢,很抱歉这么晚才回复。当我使用 False 时,我的 mysql 后端似乎还有另一个。我现在没有时间调查这一点。但经过一番阅读,我决定继续使用 Timezone,似乎它是更好的解决方案,并且该值在模板中显示得很好。
    猜你喜欢
    • 2015-08-22
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多