SQLalchemy键错误混合器类

SQLalchemy键错误混合器类,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我正在尝试使用SQLalchemy运行Mixer来自动化一些测试。这适用于6/7个表,但有一个表在提交时导致键错误(请注意,如果我自己创建表,这可以正常工作) 错误是: state = <sqlalchemy.orm.state.InstanceState object at 0x122632610>, child = <BookMetaData 52345234>, initiator = <sqlalchemy.orm.attributes.Event ob

我正在尝试使用SQLalchemy运行Mixer来自动化一些测试。这适用于6/7个表,但有一个表在提交时导致键错误(请注意,如果我自己创建表,这可以正常工作)

错误是:

state = <sqlalchemy.orm.state.InstanceState object at 0x122632610>, 
child = <BookMetaData 52345234>, 
initiator = <sqlalchemy.orm.attributes.Event object at 0x122595700>

    def emit_backref_from_collection_append_event(state, child, initiator):
        if child is None:
            return
    
        child_state, child_dict = instance_state(child), instance_dict(child)
>       child_impl = child_state.manager[key].impl
E       KeyError: "Mixer (<class 'models.book.Book'>): book"
我试过的

  • 我已经确定,如果我将backref重命名为books而不是book,错误将略有改变(相同的错误,只是用book这个词替换books)。这让我觉得backref是问题的根源
  • 然而,其他表在同样的多元化下运行良好,所以我不确定为什么这个表会失败
  • 有什么建议吗

    class Book(db.Model):
        __tablename__ = "books"
    
        id = db.Column(db.Integer, primary_key=True)
        BookMetaData = db.relationship(
            "BookMetadata", lazy="joined", backref="book", cascade="all, delete"
        )
    
    class BookMetaData(db.Model):
        __tablename__ = "book_metadata"
        
        id = db.Column(db.Integer, primary_key=True)
        book_id = db.Column(db.Integer, db.ForeignKey("books.id"), nullable=False)