SQLAlchemy的。如何订购多对多关系?

时间:2015-05-29 15:33:33

标签: python sqlalchemy flask-sqlalchemy

我有一个名为NoteType的SQLAlchemy模型,其关系名为sectionsNoteSection表通过NoteType加入NoteTypeToSectionMap表。

我希望NoteType模型上的部分列表按NoteTypeToSectionMap模型上的位置字段排序。我下面的代码似乎是随机排序的。

有谁知道如何让订单运作?

谢谢!

class NoteType(ModelAbstract):

  __tablename__ = "noteType"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
    description = db.Column(db.String(255))

    sections = db.relationship("NoteSection",
                secondary=NoteTypeToSectionMap.__table__,
                primaryjoin=id==NoteTypeToSectionMap.__table__.c.noteTypeId,
                secondaryjoin=id==NoteTypeToSectionMap.__table__.c.noteSectionId,
                order_by=NoteTypeToSectionMap.__table__.c.position)

-

class NoteTypeToSectionMap(ModelAbstract):

    __tablename__ = "noteTypeToSectionMap"
    id = db.Column(db.Integer, primary_key=True)
    noteTypeId = db.Column(db.Integer, db.ForeignKey("noteType.id"))
    noteSectionId = db.Column(db.Integer, db.ForeignKey("noteSection.id"))
    position = db.Column(db.Integer)

1 个答案:

答案 0 :(得分:0)

重新编写关系如下。

sections = db.relationship("NoteSection",
            secondary=NoteTypeToSectionMap.__table__,
            order_by=NoteTypeToSectionMap.__table__.c.position)