我在一个sqlite数据库中有6个表,我正在尝试使用sqlalchemy在其中一个表中添加新行。下面是我的表格:
class DSource(Base):
__tablename__ = 'dsource'
source_id = Column(Integer, primary_key=True)
subjects= relationship("Subject")
class Subject(Base):
__tablename__ = 'subject'
subject_id = Column(Integer, primary_key=True)
source_id=Column(Integer, ForeignKey("dsource.source_id"),nullable=False)
sequences= relationship("Sequence")
class Sequence(Base):
__tablename__ = 'sequence'
sequence_id = Column(Integer, primary_key=True)
subject_id=Column(Integer, ForeignKey("subject.subject_id"),nullable=False)
下面是我用来向表中添加新序列的代码:
engine = create_engine('sqlite:////Desktop/emotion_data/test.db',echo=True)
Session = sessionmaker(bind=engine)
session = Session()
new_sequence=Sequence(sequence_id=0,subject_id=1)
session.add(new_sequence)
session.commit()
但是我得到了这个错误:
TypeError: __init__() got an unexpected keyword argument 'subject_id'
我不知道这是什么意思,我已经向表中导入了一个带有" subject_id=0“的"subject”实例,所以subject_id=0已经在数据库中了。
有谁能帮帮我吗?
发布于 2015-07-18 00:09:21
您的代码看起来很好,如果异常仅在您将源代码拆分到不同的文件时引发。一定存在名称冲突,Sequence
类可能不是您所期望的,您可以通过在初始化过程之前添加这些行来检查这一点。
print Sequence.__module__
print type(Sequence)
https://stackoverflow.com/questions/31485523
复制相似问题