我实施与基于特定排序算法“热”故事一个FrontPage。但是,我想不出如何通过AppEngine上的数据存储我自己的排序功能(像我可以与排序(键= ranking_function)蟒蛇)。我想是这样的:

class Story(db.Model):
    user = db.ReferenceProperty(User)
    text = db.TextProperty()
    def ranking(self):
        # my ranking function, returns an int or something
        return 1
    ranking = property(ranking_function)

所以,我可以稍后调用:

Story.all().order("ranking").limit(50)

不知道如何使用AppEngine上的数据存储模型来做到这一点?

有帮助吗?

解决方案

有没有建在财产处理这个,但有一个图书馆, aetycoon ,实现DerivedProperty和其他相关属性是你想要做什么。 这里的一篇关于它如何工作的。

其他提示

我不认为这是可能与App Engine你描述的方式,但我认为这是可能实现你想要什么。您希望数据存储运行对数据存储中的每一个元素排序功能,每次你做一个查询时间。这是不是很可扩展的,因为你可以有上百万的实体要排名。

相反,你应该有一个称为秩一整数性能,并且每次更新实体的时间设置。然后你可以使用这个属性您的订单子句。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top