Django:保存在我的数据库上时DateTime不好

时间:2014-01-20 18:58:33

标签: django python-2.7

这看起来很愚蠢但是我很难在数小时内将数据保存在db上。我是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()。所以我不知道为什么我有一个小时的差异。

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

object send and received

为什么?我完全阻止所以,如果有人有解决方案,我将非常高兴:)

我的settings.py:

LANGUAGE_CODE = 'fr-fr'

TIME_ZONE = 'Europe/Paris'

USE_L10N = True

USE_TZ = True

感谢。

1 个答案:

答案 0 :(得分:0)

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