2015-11-07 82 views
1

這是我的settings.py:的Django/DRF - 更改時區不工作

TIME_ZONE = 'America/Toronto' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 

之前,它曾經是TIME_ZONE = 'UTC'但我只是改變了它現在。我在更改開發服務器後重新啓動了開發服務器,並創建了一篇文章,但創建文章的日期和時間現在仍然按照多倫多時區(它仍然遵循之前的時區)。我的模型使用默認的DateTimeField:

createdAt = models.DateTimeField(auto_now_add=True, blank=True) 

是否還有其他需要更改的時區更改才能生效?我只是試着做

python manage.py makemigrations 
python manage.py migrate 

但它說沒有檢測到變化(如預期)。

編輯:請注意,我也使用DRF和序列化器來序列化帖子。我不確定這是否有所作爲(我是否需要更改任何DRF設置?)。

+1

試試這個USE_TZ =假 – Serjik

+0

@Serjik這工作。謝謝!你可以把它作爲答案,我會檢查它。在附註中,爲什麼它工作? 「USE_TZ」不應該是「真」,以便Django可以使用我設置的時區? – user2719875

回答

1

當啓用對時區的支持時,Django在數據庫中存儲UTC的日期時間信息,在內部使用時區感知的日期時間對象,並將它們轉換爲模板和表單中的最終用戶時區。 django docs

所以試試這個

USE_TZ = False