我想通过" hotness"对帖子列表的结果进行排序。算法。基本上我想要这样的东西:
Posts.query.order_by(Post.votes + 1000/(datetime.utcnow() - Post.datetime)).all()
但是,这种代码无法正常工作。它根本没有考虑时间。
答案 0 :(得分:1)
尝试这样的事情
(
db.session.query(Post)
.order_by(
Post.votes + 1000 / (db.extract('epoch', datetime.now() - Post.datetime))
)
)
您的方法存在的问题是,sqlalchemy无法决定如何划分积分值和时间差。因此,您必须手动将时间差异解释为整数值。在这里,我从差异中提取时代,你可以选择提取任何东西。