gpt4 book ai didi

python - 按排序顺序检索 sqlalchemy 关系对象

转载 作者:行者123 更新时间:2023-11-28 23:38:33 25 4
gpt4 key购买 nike

我在 sqlalchemy 中有以下关系模型:

类用户(对象):

__tablename__ = 'username'

uuid = Column('uuid', BigInteger, primary_key=True, autoincrement=True)
name = Column(String(20))
parent_name = Column(BigInteger, ForeignKey(username.uuid')
children = relationship(
"User",
backref=backref("parent_name", remote_side=[uuid]),
cascade="all, delete, delete-orphan",
order_by="User.name"
)

当我从这个表中得到一个用户对象时,比如说 user,当我检索 user.children 时,order_by="User.name" 确保列表是有序的按字母顺序排列。如何自定义/覆盖 order_by 功能?例如,名称在数据库中存储为“Firstname Lastname”,我希望 user.children 返回按姓氏排序的列表。

最佳答案

该表已被使用,并且有一堆我不想迁移的数据。我最终通过重载点运算符解决了这个问题:
def __getattribute__( self ,项目):
如果项目 == ' child ':
children = super(User, self).__getattribute__(item)
children.sort(key=lambda x: x.name.split(' ')[1])
送回 child
别的:
返回 super (用户, self ).__getattribute__(项目)

关于python - 按排序顺序检索 sqlalchemy 关系对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072960/

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