2014-01-20 19 views
1

這似乎很愚蠢,但我有幾個小時和幾個小時後很難保存我的dateTime在分貝。我在Python中很新,並不是每天都在操縱日期時間。 我有一個小時的差異,當我保存我的價值。所以,現在18小時爲17H(抱歉,我的英語)Django:DateTime不好,當保存在我的數據庫

我的模式是這樣的:

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()解決probleme。我發現在頁面底部有enter link description here。但他們說在大多數情況下使用timezone.now()。所以我不知道爲什麼我有一個小時的差異。

我有兩個其他領域是從我的角度前端發送到我的API(使用Django休息框架) 我把一個截圖。我發送的第一個對象是angular.As你看到日期格式良好。 的第二個目的是從我的API的響應,我已經失去了一個小時(所以GMT +1)

object send and received

爲什麼?我完全塊,所以如果有人有一個解決方案,我會很高興:)

我的settings.py:

LANGUAGE_CODE = 'fr-fr' 

TIME_ZONE = 'Europe/Paris' 

USE_L10N = True 

USE_TZ = True 

感謝。

回答

0

在設置文件中嘗試使用USE_TZ = False,並使用正常的datetime.now()。

+0

Thxs和抱歉,這麼晚回覆。這似乎是我用我的MySQL後端時,我使用False。我現在沒有時間來調查這一點。但是在閱讀完一些內容後,我決定繼續使用Timezone,似乎它是更好的解決方案,並且在模板中顯示的值很好。 – Epok