我有一个包含谜题和类别的多对多关系数据库。当我第一次运行它时,一切都运行得非常好。所有表格均已创建并填充内容。但是,当我第二次运行它以进一步填充数据库时,会弹出以下错误。
AttributeError: Could not locate column in row for column '_sa_instance_state'
我已将问题范围缩小到知道当数据库中已找到相同类别时它会崩溃。但不能将其分配给新谜题的类别,因为这就是崩溃发生的地方。
我制作了以下可重现的示例。运行一次就完美了,再次运行就崩溃了。
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
category_identifier = db.Table('category_identifier',
db.Column('categories_id', db.Integer, db.ForeignKey('categories.id')),
db.Column('puzzles_id', db.Integer, db.ForeignKey('puzzles.id'))
)
class Puzzle(db.Model):
__tablename__ = 'puzzles'
id = db.Column(db.Integer, primary_key=True)
categories = db.relationship("Category", secondary=category_identifier)
class Category(db.Model):
__tablename__ = 'categories'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True, nullable=False)
db.create_all()
db.session.commit()
if __name__ == '__main__':
myList = ['cat1', 'cat2, cat3']
puzzle = …Run Code Online (Sandbox Code Playgroud)