使用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做任何事吗?
答案 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
对象是在与您的类相同的文件中创建的。如果不是,您可能会在导入时遇到问题,因为您可能会遇到循环导入问题。