【发布时间】:2016-12-06 23:06:32
【问题描述】:
我使用Django 作为我的网络应用程序的后端,django-haystack(with Solr) 用于搜索和显示结果。
我使用 RealTimeSignalProccessor 形式 django-haystack ,但我有一个问题:
- 我有一个Auction model 和expires-(DateTimeField)。当我显示结果时,我的操作类似于 e-bay(例如过期时间:1h 23m 5s)。
问题是在显示所有拍卖的页面上,如果您想在每次访问此视图时更新 Expires in 参数(正如我在 django-haystack 文档中所读的那样),您必须使用object.save() 方法来更新 Solr 索引数据库。但是,如果我每次转到列出所有拍卖的视图时都对 30 个结果执行此操作,那么它会非常缓慢并且效率不高。
还有其他解决方案吗?你有什么建议?
【问题讨论】:
-
您想要更新过期值的原因是什么?对于 expires 大于 utcnow() 的任何值,这不与 DateTimeField asc 排序相同吗?
-
Expires总是大于 utcnow() ,关于更新 - 我需要显示拍卖结束前的剩余时间。示例:2d 4h 3m 和页面刷新(将其更改为 2d 4h 2m 等)。正如我通过django-haystack文档所说的那样。你需要在对象上调用 save() 方法来为它更新 Solr 中的参数 -
是的,但“过期”部分并不需要成为数据库的一部分。在模型或视图中检索它时计算它。为每个页面视图更新 x 行数将导致问题。
-
实际上是的,我只需要将
expiring_date编入索引即可。我可以计算剩下的时间。不知道为什么我没有那样做......无论如何,将其发布为答案,我会将您的答案标记为正确。谢谢
标签: python django django-models solr django-haystack