我有一個事件模型,其中包含一個「開始時間」字段,該字段以UTC格式存儲並映射到數據庫。該模型還有一個start_local()
幫助程序函數,用於在用戶當地時間將事件作爲Datetime對象返回。這通過Event實例對用戶的引用發生,然後get_profile()
具有時區信息。如何在Django模型實例之間共享公共數據?
這可行,但問題是,當我顯示長列表事件時,由於用戶和配置文件查找,每行有2個數據庫查詢。這很愚蠢,因爲行之間的時區不是可變的,但模型不知道。我目前的設置將時區信息傳遞給start_local()
,這可以解決速度問題,但從設計的角度來看,這並不令人愉快。事件實例知道如何獲取用戶的時區,並且不得不依賴於調用函數來獲得幫助,以避免令人討厭的大表現。
有沒有人有改進將時區信息傳遞到幫助函數?
這是一個相當不錯的答案,確實查詢的數量減少幾乎我讓他們與我目前的解決方案的地步。你的優點是更清潔。 – LVB 2012-02-07 19:52:19