Reference
という特定のオブジェクトを照会したい。しかし、私はそのリストをその子オブジェクト(あなたは関係を言うことができる)の順番にしたい:Reference._periodical._name
とReference._author._lastname' (means the __first__ author, which are orded by
ReferenceAuthor.Index`)。SQLAlchemyの子オブジェクトのフィールドによる順序?
これを行う方法がわかりません。これは問合せですが、順序付けはありません。
return self.session.query(Reference) \
.filter_by(_mark = False) \
#.order_by(Reference._periodical) \
#.order_by(Reference._author._lastname) \
.all()
これは私の知る限りでは、あなたがそのようSQLAlchemyの使用することはできませんモデル自体
ReferenceAuthor = sa.Table('ReferenceAuthor', _Base.metadata,
sa.Column('ReferenceID', sa.Integer, sa.ForeignKey('Reference.ID'), primary_key=True),
sa.Column('PersonID', sa.Integer, sa.ForeignKey('Person.ID'), primary_key=True),
sa.Column('Index', sa.Integer)
)
class Reference(_Base):
__tablename__ = 'Reference'
_id = sa.Column('ID', sa.Integer, primary_key=True)
_mark = sa.Column('HasLabel', sa.Boolean)
# Autor
_authors = sao.relationship('Person', secondary=ReferenceAuthor,
order_by=ReferenceAuthor.c.Index)
# Journal
_periodical_fk = sa.Column('PeriodicalID',
sa.Integer,
sa.ForeignKey('Periodical.ID'))
_periodical = sao.relationship('Periodical')
class Periodical(_Base):
__tablename__ = 'Periodical'
_id = sa.Column('ID', sa.Integer, primary_key=True)
_name = sa.Column('Name', sa.String)
class Person(_Base):
__tablename__ = 'Person'
_id = sa.Column('ID', sa.Integer, primary_key=True)
_lastname = sa.Column('LastName', sa.String)
非常に良い。しかし、これは 'Authors'のために実際には機能しません。まず、 'Periodical._name'で注文したいと思います。そしてセカンダリ参照は 'Reference._authors [0] ._ lastname'によって順序付けされるべきです。 – buhtz
'session.query(参照).filter_by(_mark = False).join(定期的).join(ReferenceAuthor).join(Person).order_by(Periodical._name).order_by(Person._lastname)'は機能しません。 – buhtz
私は少し質問を指定しました。私は__first__作者の姓によってのみ注文したいと思います。あなたの解決策(私はそれを確認した)すべての作者による注文 - 私は非常にinteresetingを発見した。 – buhtz