我有一个事件模型,其中包含一个“开始时间”字段,该字段以UTC格式存储并映射到数据库。该模型还有一个start_local()
帮助程序函数,用于在用户当地时间将事件作为Datetime对象返回。这通过Event实例对用户的引用发生,然后get_profile()
具有时区信息。如何在Django模型实例之间共享公共数据?
这可行,但问题是,当我显示长列表事件时,由于用户和配置文件查找,每行有2个数据库查询。这很愚蠢,因为行之间的时区不是可变的,但模型不知道。我目前的设置将时区信息传递给start_local()
,这可以解决速度问题,但从设计的角度来看,这并不令人愉快。事件实例知道如何获取用户的时区,并且不得不依赖于调用函数来获得帮助,以避免令人讨厌的大表现。
有没有人有改进将时区信息传递到帮助函数?
这是一个相当不错的答案,确实查询的数量减少几乎我让他们与我目前的解决方案的地步。你的优点是更清洁。 – LVB 2012-02-07 19:52:19