gpt4 book ai didi

SqlAlchemy上一个/下一个访问器?

转载 作者:行者123 更新时间:2023-12-04 16:14:47 24 4
gpt4 key购买 nike

有什么方法可以从SqlAlchemy查询中获取上一个/下一个记录吗?像这样:

record.id
record.next.id
record.prev.id

我可以自己为每个模型添加prev/next方法,但是我想知道是否已经有一些自动方法被我忽略了。有问题的Web应用程序是用Pylons编写的。

编辑:
这可能是一个肮脏的hack,但是它可以工作。我将sqlalchemy Session对象导入到我的模型中,并执行以下操作:
def next(self):
return Session.query(Blog).filter(Blog.id > self.id).order_by(Blog.id).first()

def prev(self):
return Session.query(Blog).filter(Blog.id < self.id).order_by(desc(Blog.id)).first()

最佳答案

我建议您在原始查询中请求-1和+1,这样您就可以轻松获取ID,而不必运行其他查询,从而节省了在SQL Server上进行处理的时间。

您的解决方案肯定有效,但是需要额外的两个查询。您甚至可以使其成为子查询,这样,如果您只想检索单行并在其上放置上一个/下一个,则数据将存储在子查询创建的列中。

关于SqlAlchemy上一个/下一个访问器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com