回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我只是在为学习sqlalchemy创建一个简单的地址簿数据库。这是'表格.py'文件(这很像教程中的文件!)公司名称:</p>
<pre><code>#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
engine = create_engine('sqlite:///phone.db', echo=True)
Base = declarative_base()
class namesT(Base):
__tablename__ = 'Names'
id = Column(Integer, primary_key=True)
name = Column(String)
sirname = Column(String)
job = Column(String)
work = Column(String)
def __init__(self, namesTuple):
self.name, self.sirname, self.job, self.work = namesTuple
print self.name, self.sirname, self.job, self.work
def __repr__(self):
return '%s, %s, %s, %s' % (self.name, self.sirname, self.job, self.work)
class detailT(Base):
__tablename__ = "Details"
id = Column(Integer, primary_key=True)
names_id = Column(Integer, ForeignKey('Names.id'))
type = Column(String)
info = Column(String)
detail = Column(String)
names = relationship(namesT, backref='Details', order_by=id, cascade="all, delete, delete-orphan")
def __init__(self, detailsTuple):
self.type, self.info, self.detail = detailsTuple
print self.type, self.info, self.detail
def __repr__(self):
return "%s, %s, %s" % (self.type, self.info, self.detail)
Base.metadata.create_all(engine)
</code></pre>
<p>这是数据库传输.py':</p>
^{pr2}$
<p>每次运行dbtrans时都会出现这个错误:</p>
<pre><code>sqlalchemy.orm.exc.FlushError: Instance <namesT at 0x14538d0> is an unsaved, pending instance and is an orphan (is not attached to any parent 'detailT' instance via that classes' 'names' attribute)
</code></pre>
<p>问题出在哪里?在</p>