2017-09-17 76 views
0

我有一個模板標籤,從模型字段返回一個日期。如果日期是今天,我想渲染一些其他內容。 使用現在內置-templatetag:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#now,我用類似的邏輯在此之前公佈答案的答案:使用Django「現在」模板標籤來比較日期

https://stackoverflow.com/a/34959070/5616606

{% now "Y-m-d" as todays %} 
{% if self.date|date:"Y-m-d" == todays %} 
    ...add some content 
{% endif %} 

我試圖做到這一點,而無需創建一個自定義過濾器,背景處理器或編輯視圖。我相信問題在於timezone。直到晚上晚些時候,現在會在第二天而不是當天返回。我研究了Django的日期和時區文檔,但不知道如何使從現在返回的時區與模型字段的時區匹配,而無需創建上下文處理器或編輯視圖。

回答

0

項目settings.py嘗試改變時區:

你的下面時區,而不是礦山的Asia/Kolkata的。

TIME_ZONE = 'Asia/Kolkata' 

評論後編輯 啓用對時區的支持,在數據庫中的UTC的Django店日期時間信息,使用時區感知datetime對象的內部,並將它們轉換爲最終用戶的時區在模板和表單中。

這是方便,如果您的用戶住在多個時區,並且您想根據每個用戶的掛鐘顯示日期時間信息。

默認情況下禁用時區支持。要啓用它,設置

USE_TZ =真

在你的設置文件。

+0

這將工作,但我相信我們希望它被設置爲'UTC'爲應用程序內的其他原因,我只是希望它是本地的這個模板 – JohnnyP

+0

但爲什麼你想有不同的'時區'? –

+0

我應該更具體一些:所以我想要顯示一個流式視頻鏈接,如果會議正在進行,否則將其隱藏。因此,會議時間應根據我們所在地的當地時間進行驗證,整個場地的其他時區表示不一定代表組織辦公室的當地時間。 – JohnnyP