首页 > 解决方案 > 关系表中的 SqlAlchemy 访问列

问题描述

如果我有一个具有多对多关系的模型并且想将特定数据保存到关系中,我如何访问关系表中的列?

F.e.

borrow = db.Table('borrow',
                    db.Column('book_id', db.Integer, db.ForeignKey('book.id', ondelete="CASCADE"), primary_key=True),
                    db.Column('person_id', db.Integer, db.ForeignKey('person.id', ondelete="CASCADE"), primary_key=True),
                    db.Column('deadline', db.Date, nullable=False))

class Book(Base):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(255), nullable=False, unique=True)

class Person(Base):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(255), nullable=False, unique=True)
     borrow = db.relationship('Book', secondary=borrow, lazy='subquery', backref=db.backref('person', lazy=true))


book = Book(name="MyBook")
person = Person(name="John")
person.borrow.append(book)

但是如何保存或访问截止日期?该列在我的数据库中,但我不能在代码中使用它

谢谢

标签: sqlalchemyflask-sqlalchemy

解决方案


将 Borrow 重构为一个类,就像您已经对 Book 和 Person 所做的那样,然后您可以在实例化 Borrow 的实例时设置截止日期。

在此处查看文档中的示例。


推荐阅读