2012-07-19 100 views
9

Django給我一些運行時警告(在我沒有寫的代碼上)。Django:如何獲取堆棧跟蹤運行時警告

我怎樣才能讓Django給我一個堆棧跟蹤,所以我可以看到是什麼造成了這些?

/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py:808: 
RuntimeWarning: DateTimeField received a naive datetime (2012-07-19 09:36:16.161479) 
while time zone support is active. 
    RuntimeWarning 
+1

難道我的答案回答你的問題? – dalore 2013-06-27 12:35:22

+0

嘿,至少接受一個答案。 – dalore 2014-10-08 08:55:32

+0

嗨,對不起,我只是看到了你的答案。 – fadedbee 2014-11-07 12:23:04

回答

-3

Django的源告訴你到底發生了什麼:

def get_prep_value(self, value): 
    value = self.to_python(value) 
    if value is not None and settings.USE_TZ and timezone.is_naive(value): 
     # For backwards compatibility, interpret naive datetimes in local 
     # time. This won't work during DST change, but we can't do much 
     # about it, so we let the exceptions percolate up the call stack. 
     warnings.warn(u"DateTimeField received a naive datetime (%s)" 
         u" while time zone support is active." % value, 
         RuntimeWarning) 
     default_timezone = timezone.get_default_timezone() 
     value = timezone.make_aware(value, default_timezone) 
    return value 
+1

謝謝,但我知道這一點。我正在尋找導致運行時警告的原因。這不是唯一的...... – fadedbee 2012-07-19 12:46:34

-2

這意味着你能在Django時區的支持;但是您向它傳遞了一個沒有附加任何時區信息的日期時間對象。

如果您想要django的時區支持,那麼使用的日期時間對象應該可以識別時區。

documentation on timezone support提供了一種將日期時間對象轉換爲timzeones的方法。

+1

謝謝,但我知道這一點。我正在尋找導致運行時警告的原因。這不是唯一的... – fadedbee 2012-07-19 12:12:16

相關問題