2012-07-11 44 views
0

Django的:顯示的DateField這是我的模型常數時間

class messages(models.Model): 
    status_choices = (
     (u'read',u'read'), 
     (u'unread',u'unread') 
     ) 
    user = models.ForeignKey(User) 
    message = models.TextField() 
    status = models.CharField(max_length=6,choices=status_choices,default='unread') 
    sender = models.ForeignKey(User,related_name="sender") 
    date = models.DateField(default=datetime.date.today,editable=False) 

所以現在每一個消息「日期」字段設置爲「12:00 AM - 2012年7月11日」。爲什麼是這樣的嗎?

+0

你確定你正在做datetime.date.today而不是datetime.date.today()? – Dave 2012-07-11 22:18:04

+0

其實,我在某處閱讀(在一些其他帖子上的stackoverflow),它是「datetime.date.today」,但我不知道哪一個是正確的:) – 2012-07-11 22:20:02

+0

我的意思是,你上面有什麼更好。對於其他人而言,你不想調用該函數,因爲那樣你就可以將所有的默認設置設置爲啓動Django的時間。這會導致錯誤,真的很讓人困惑:) – Dave 2012-10-01 17:26:09

回答

2

datetime.date.today()不返回時間值,所以它默認爲午夜。將最後一行更改爲date = models.DateTimeField(default=datetime.datetime.now, editable=False)

+0

「default = datetime.datetime.now()」爲我工作.Btw我認爲settings.py中的「TIME_ZONE = US/Eastern」設置也負責區別時間。我在印度,所以時間不一樣。 – 2012-07-11 22:37:51