0
當我更改代碼中的焦點時,不再需要應答。 (請參閱我在回答中的評論)發佈答案以供將來參考...sqlalchemy子字段order_by backref
如何從子項中的字段排序的一個到多個backref檢索結果?我需要按索引排序的gid。但是在這個時候,即使它們是在ms sql服務器中訂購的,它們也是隨機檢索的。
我在TurboGears中2 datamodels.py:
`class Parcel(DeclarativeBase):
__tablename__ = 'GENERAL'
__table_args__ = ({'autoload': True})
gid = Column(Integer, primary_key=True)`
somethings = relationship('Something', backref='Parcel')
'class Something(DeclarativeBase):
__tablename__ = 'SKETCH'
__table_args__ = ({'autoload': True})
gid = Column(Integer, ForeignKey('GENERAL.gid'), primary_key=True)
index = Column(Integer, primary_key=True)
在TurboGears中root.py:
query = DBSession.query(Parcel)
query = query.options(joinedload('somethings')
query=session.filter(Parcel.gid==gid)
返回所有出頭的GID無序。
但它不再被用作backref,而是變成單個查詢,並且需要添加到上下文字典或Parcel查詢中。我正在尋找一種方法來訂購已添加到Parcel查詢中的backref。除了自己的查詢以外,可能沒有簡單的方法來完成它。 – stuartz
我明白了,我編輯了我的答案。這有幫助嗎? – Simon
我從來沒有能夠按照孩子的領域排序。 backref通過來自父級的字段對孩子進行排序。而且我無法使backref = backref()也能正常工作。我最終做了單獨的查詢...我也對其他關係正常工作,除非信息過多導致渦輪機發生故障。個人查詢似乎運行得更快,並防止崩潰。感謝您的迴應。 – stuartz