更新数据库后“sqlalchemy.exc.InvalidRequestError实体'<class''=”“>'没有属性...”异常

时间:2016-09-14 05:38:10

标签: python sqlite sqlalchemy

我正在尝试通过id更新SQLite表中的行。

我有课

class newTestCaseData(Base):
    __tablename__ = 'test_cases'
    __table_args__ = {"useexisting": True}


    failure_datails = Column('failure_details', String)
    exec_status = Column('exec_status', String)
    execution_duration = Column('execution_duration', String)

    def __init__(self, failure_details=None, execution_duration=None, exec_status = None):
        self.failure_datails = failure_details
        self.execution_duration = execution_duration
        self.exec_status = exec_status

这是我更新表中行的方法:

def update_by_external_id(self, tc_external_id, add_tc_status, add_tc_duration, add_failure_details):
    self.new_session.query(newTestCaseData).filter_by(external_id=tc_external_id).\
            update({
                    'exec_status': add_tc_status,
                    'execution_duration': add_tc_duration,
                    'failure_details': add_failure_details})
        self.new_session.commit()

执行此操作后,我收到错误:sqlalchemy.exc.InvalidRequestError: Entity '<class 'models.TestCaseData.newTestCaseData'>' has no property 'failure_details'

但如果我从方法'update_by_external_id'中删除'failure_details',一切正常:

def update_by_external_id(self, tc_external_id, add_tc_status, add_tc_duration):
    self.new_session.query(TestCaseDatas).filter_by(external_id=tc_external_id).\
            update({
                    'exec_status': add_tc_status,
                    'execution_duration': add_tc_duration})
        self.new_session.commit()

这是SQLite Studio中的'failure_details'列: enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:1)

“failure_datails”中存在拼写错误