扫码关注官方订阅号
认证高级PHP讲师
你的问题好像是problemtag.id找不到外码,这个是因为 Flask-SQLAlchemy 创建的实际表的名称不是problemtag, 而是problem_tag,可以在表中通过 __tablename__来指定表的名称。 另外多对多关系,只需要定义一边就可以了。
problemtag.id
problemtag
problem_tag
__tablename__
tags_table = db.Table('problem_tags', db.Column('problem_id', db.Integer, db.ForeignKey('problem.id')), db.Column('tag_id', db.Integer, db.ForeignKey('problemtag.id')) ) class ProblemTag(db.Model): __tablename__ = 'problemtag' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80)) problems = db.relationship('Problem', secondary=tags_table, backref=db.backref('tags', lazy='dynamic')) def __init__(self, name): self.name = name def __repr__(self): return "<Tag %r>" % self.name class Problem(db.Model): __tablename__ = 'problem' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80)) def __init__(self, title, tags): self.title = title self.tags = tags def __repr__(self): return "<Problem %r>" % self.title
Many-to-many relationship 只需要在一边定义
参见https://pythonhosted.org/Flask-SQLAlchemy/models.html#many-to-many-relationships
把ProblemTag的problems去掉应该就可以
ProblemTag
problems
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你的问题好像是
problemtag.id
找不到外码,这个是因为 Flask-SQLAlchemy 创建的实际表的名称不是problemtag
, 而是problem_tag
,可以在表中通过__tablename__
来指定表的名称。另外多对多关系,只需要定义一边就可以了。
Many-to-many relationship 只需要在一边定义
参见
https://pythonhosted.org/Flask-SQLAlchemy/models.html#many-to-many-relationships
把
ProblemTag
的problems
去掉应该就可以