2011-01-22 72 views
1

我有一个User模型和一个Ledger模型与多对多的关系。 SQLAlchemy已经正确创建了我的数据库表,所以我非常肯定它有正确的映射。我可以在每个表格中创建一个新记录,但我无法弄清楚如何关联它们。我该怎么做?如何在Pylons中使用SQLAlchemy创建与assoc记录?


我的表定义:

user_table = sa.Table('user', meta.metadata, 
    sa.Column('id', types.Integer, 
     sa.Sequence('user_seq_id', optional=True), primary_key=True), 
    sa.Column('username', types.Unicode(255), nullable=False, unique=True), 
    sa.Column('password', types.Unicode(255), nullable=False), 
    sa.Column('salt', types.Unicode(255), nullable=False) 
    ) 
userledger_table = sa.Table('userledger', meta.metadata, 
    sa.Column('id', types.Integer, 
     sa.Sequence('user_seq_id', optional=True), primary_key=True), 
    sa.Column('user_id', types.Integer(), sa.ForeignKey('user.id')), 
    sa.Column('ledger_id', types.Integer(), sa.ForeignKey('ledger.id')), 
    ) 
ledger_table = sa.Table('ledger', meta.metadata, 
    sa.Column('id', types.Integer, 
     sa.Sequence('ledger_seq_id', optional=True), primary_key=True), 
    sa.Column('name', types.Unicode(255), nullable=False), 
    ) 

映射:

orm.mapper(User, user_table); 
orm.mapper(Ledger, ledger_table, properties={ 
    'users':orm.relation(User, secondary=userledger_table) 
    }) 

回答

0

我发现我的答案this tutorial

ledger = model.Ledger() 
ledger.name = name 
ledger.users.append(user) 
meta.Session.add(ledger) 
meta.Session.commit() 
相关问题