Как мне создать как ассоциированную запись с SQLAlchemy в Pylons? - PullRequest
1 голос
/ 22 января 2011

У меня есть модель User и модель Ledger с отношением многих ко многим. SQLAlchemy правильно создал мои таблицы базы данных, поэтому я почти уверен, что он получил правильные отображения. Я могу создать новую запись в каждой таблице, но не могу понять, как их связать. Как мне это сделать?


Мои определения таблиц:

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)
    })

1 Ответ

0 голосов
/ 23 января 2011

Я нашел свой ответ в этом уроке .

ledger = model.Ledger()
ledger.name = name
ledger.users.append(user)
meta.Session.add(ledger)
meta.Session.commit()
...