3

現在InstrumentedList、ピラミッドアプリで1対多の関係を表すを持っています。関係は次のように構築されます。

Class project:
 submissions = relationship('Submission', backref='project')

プロジェクトのリストにあるすべての提出物を繰り返し処理したいと思います。datetimeただし、提出物をタイムスタンプ(オブジェクト)で並べ替えたい

現在、提出物を繰り返し処理している方法は次のとおりです。

for project in projects:
    for submission in project.submissions:
        # Do some stuff with each submission here

問題は、アプリがリロードされるたびに、すべてのプロジェクトの提出の順序が変わることです。順序を一貫させてタイムスタンプ順に並べる必要がありますが、どうすればよいですか?

4

2 に答える 2

12

order_byパラメータを使用して、関係定義で順序を指定する必要があります。

class Project(Base):
    # ...
    submissions = relationship('Submission',
        backref='Project', order_by='Submission.timestamp')
于 2012-07-17T08:46:13.987 に答える
1

@martjinの回答は完全に問題ありませんが、テーブルを降順で並べ替える場合は、 desc()関数を使用します。

class Project(Base):
    # ...
    submissions = relationship('Submission',
        backref='Project', order_by='Submission.timestamp.desc()')
于 2021-07-17T01:48:58.940 に答える