sqlalchemy - 关系表中的 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)
但是如何保存或访问截止日期?该列在我的数据库中,但我不能在代码中使用它
谢谢
解决方案
将 Borrow 重构为一个类,就像您已经对 Book 和 Person 所做的那样,然后您可以在实例化 Borrow 的实例时设置截止日期。
在此处查看文档中的示例。
推荐阅读
- react-native - FlatList 呈现空的孩子
- php - 学说querybuilder语法错误预期=,<,<=,<>,>,>=,!=,字符串结尾
- ruby-on-rails - 在 Vue.js 中使用 ActiveStorage 上传文件
- reactjs - 如何将 material-ui 表导出为 CSV?
- git - 如何拆分 git repo 并应用 Maven 子模块和 Maven 父级?
- javascript - 如何在不重新加载页面的情况下更改 BrowserWindow 哈希 url
- javascript - clearInterval 不会停止间隔
- c++ - 使用 Detected Idiom 实现 is_destructible
- r - 无法为签名“逻辑”找到函数“rowData”的继承方法
- c# - 为什么我的 Windows 窗体按钮上缺少 Aero 视觉样式动画?