session.add(self)不向db添加记录

时间:2012-11-27 20:29:40

标签: sqlalchemy

这里总新手。尝试使用sqlalchemy,但遇到了问题。

class Establishment(Base):
__tablename__ = 'establishments'

estaID = Column(String(5), primary_key=True)
typeID = Column(String(2), ForeignKey('types.typeID'))

type = relationship("Type", backref=backref('estabs', order_by=estaID))

def __init__(self, id):
    self.estaID = id

    try:
        session = Session()

        existsEsta = session.query(Establishment).filter(Establishment.estaID == self.estaID).one()
        session.close()

        self.typeID = existsEsta.typeID

    except NoResultFound, e:
        session = Session()

        print "Establishment: ", self.estaID, "does not yet exist."
        type = Type(raw_input("Please enter type: "))

        self.typeID = type.gettypeID()

        print "Adding establishment", self.estaID, self.typeID

        session.add(self)

        session.commit

由于某种原因,session.add(self)没有将记录添加到db。我正在特别难以弄清楚发生了什么,因为这个“建立”类是以另一个类(相同的算法,不同的变量名)为模型运行得很好。

关于我在哪里出错的想法?​​

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试使用session.commit()代替session.commit