2011-01-22 71 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() 
相關問題