小编Ngu*_* DT的帖子

SQLAlchemy多对多加入

这是我的模型:产品和标签具有多对多关系

products_tags_table=db.Table('products_tags',
                        db.Column('product_id', db.Integer,db.ForeignKey('products.id'), nullable=False),
                        db.Column('tag_id',db.Integer,db.ForeignKey('tag.id'),nullable=False),
                        db.PrimaryKeyConstraint('product_id', 'tag_id')
                        )

class Tag(db.Model):
    __tablename__ = "tags"
    id = db.Column( db.Integer, primary_key = True)
    name = db.Column( db.String(256) )
    description = db.Column( db.Text() )
    background_img_url = db.Column( db.String(256) )
    products =db.relationship('Product',
                              secondary=products_tags_table,
                              backref='product_tags'
                             )  




class Product(db.Model):
    __tablename__ = "products"
    id = db.Column( db.Integer, primary_key = True)
    name = db.Column( db.String(256) )
    tags=db.relationship('ProductTag',
                        secondary=products_tags_table,
                        backref='tag_products'
                        )  
Run Code Online (Sandbox Code Playgroud)

当我加入Tag with Product时.我收到了错误:

class'narlalchemy.exc.InvalidRequestError':找不到要加入的FROM子句.尝试加入,但得到:找不到'product_tags'和'产品'之间的任何外键关系.

这是我的加入代码:

avai_tags = Tag.query.join(Product).order_by(ProductTag.name)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

python many-to-many join sqlalchemy flask

1
推荐指数
1
解决办法
3421
查看次数

标签 统计

flask ×1

join ×1

many-to-many ×1

python ×1

sqlalchemy ×1