背景:一个主题可以对应多个产品,一个产品可以属于多个主题
我也不想使用第三张表,但是人家已经给我了 sql 文件,我只能使用,要不怎么读取人家的数据
- 中间表
class Theme_Product(db.Model):
__tablename__ = 'theme_product'
theme_id=db.Column(db.Integer,db.ForeignKey('theme.id'), primary_key=True)
product_id=db.Column(db.Integer,db.ForeignKey('product.id'), primary_key=True)
- 主题表简化
class Theme(db.Model):
__tablename__ = 'theme'
id = db.Column(db.Integer, primary_key=True)
productInTheme=db.relationship('Theme_Product',
foreign_keys=[Theme_Product.theme_id],
backref=db.backref('backTheme',lazy='joined'),
lazy='dynamic',
cascade='all,delete-orphan')
- 产品表
class Product(db.Model):
__tablename__ = 'product'
id = db.Column(db.Integer, primary_key=True)
theme=db.relationship('Theme_Product',
foreign_keys=[Theme_Product.product_id],
backref=db.backref('backProduct', lazy='joined'),
lazy='dynamic',
cascade='all,delete-orphan')
- 查询语句
- 从 theme 查询其下属包含的所有 product
- 导入 Theme 类
Theme.query.get(id).productInTheme- 此时提示<class 'sqlalchemy.orm.dynamic.AppenderBaseQuery'>
- Theme.query.get(id).productInTheme
- 无法错误提示很乱,感觉像是 id 相互对应不上什么的
-----------------------跪求指点,如何查询--------------------------------