自动创建相关模型

时间:2014-01-29 21:08:15

标签: python sqlalchemy

使用SqlAlchemy,我定义了1-1关系:

class User(Base):
    id = Column(Integer, primary_key=True)

class Profile(Base):
    user_id = Column(Integer, ForeignKey(User.id), primary_key=True)
    name = Column(String)

我想强制执行该关系,以便在创建用户时自动创建配置文件。

用SqlAlchemy做任何事吗?

1 个答案:

答案 0 :(得分:2)

这样的事情应该有效:

class User(Base):
    id = Column(Integer, primary_key=True)

    def __init__(self, name):
        prof = Profile(self, name)
        session.add(prof)
        session.commit()

class Profile(Base):
    user_id = Column(Integer, ForeignKey(User.did), primary_key=True)  # you have what I assume is a typo here User.did should probably be User.id
    name = Column(String)

    def __init__(self, user, name):
        user_id = user.id
        self.name = name 

这对我没有任何错误。如果您的session对象是在与您的类相同的文件中创建的。如果不是,您可能会在导入时遇到问题,因为您可能会遇到循环导入问题。