亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

RuntimeWarning:DateTimeField收到一個簡單的日期時間

RuntimeWarning:DateTimeField收到一個簡單的日期時間

拉丁的傳說 2019-11-05 16:04:28
我正在嘗試使用IPython發送簡單的郵件。我尚未設置任何仍然出現此錯誤的模型。該怎么辦?錯誤:/home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/models/fields/ init .py:827:RuntimeWarning:DateTimeField收到的是原始日期時間(2013-09-04 14:14:13.698105),時區支持處于活動狀態。運行時警告)已嘗試:第一步是添加USE_TZ = True到您的設置文件并安裝pytz(如果可能)。錯誤已更改:(learn)sourabh@sL:~/Django/learn/event$ python manage.py shell/home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:53: RuntimeWarning: SQLite received a naive datetime (2013-09-05 00:59:32.181872) while time zone support is active.  RuntimeWarning)
查看完整描述

3 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

問題不在于Django設置,而在于傳遞給模型的日期。時區感知對象如下所示:


>>> from django.utils import timezone

>>> import pytz

>>> timezone.now()

datetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=pytz.UTC)

這是一個幼稚的對象:


>>> from datetime import datetime

>>> datetime.now()

datetime.datetime(2013, 11, 20, 20, 9, 26, 423063)

因此,如果您將電子郵件日期傳遞到任何地方(并且最終到達某種模型),請使用Django的now()。如果不是,則可能是現有軟件包獲取沒有時區的日期的問題,您可以修補該軟件包,忽略警告或將USE_TZ設置為False。


查看完整回答
反對 回復 2019-11-05
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

使用django.utils.timezone.make_aware函數可讓您的樸素日期時間對象意識到時區并避免這些警告。


它將天真的datetime對象(不帶時區信息)轉換為具有時區信息的對象(如果未將其明確指定為第二個參數,則使用django設置中指定的時區):


import datetime

from django.conf import settings

from django.utils.timezone import make_aware


naive_datetime = datetime.datetime.now()

naive_datetime.tzinfo  # None


settings.TIME_ZONE  # 'UTC'

aware_datetime = make_aware(naive_datetime)

aware_datetime.tzinfo  # <UTC>


查看完整回答
反對 回復 2019-11-05
  • 3 回答
  • 0 關注
  • 1297 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號