oh sorry, I was on autopilot. Two different classes indeed.
If you aren't using ForeignKey, the foreign_keys argument points to
the column or columns that would have ForeignKey on them, so the
argument should be the same in both directions on the relation:
parent = relation(Parent,
primaryjoin=id_parent==Parent.id,
foreign_keys=[id_parent],
backref=backref('children',
foreign_keys=[id_parent],
cascade='all, delete-orphan',
passive_deletes=False))
On Oct 30, 2008, at 6:58 PM, GustaV wrote:
> rom zope.sqlalchemy import ZopeTransactionExtension
> from sqlalchemy.orm import scoped_session, sessionmaker, eagerload
> from sqlalchemy import MetaData
> from sqlalchemy.orm.interfaces import SessionExtension
> from sqlalchemy.ext.declarative import declarative_base
> from sqlalchemy import Table, Column, types
> from sqlalchemy import ForeignKey, UniqueConstraint
> from sqlalchemy.orm import relation, backref, synonym
> from sqlalchemy import select, func
>
>
> maker = sessionmaker(autoflush=True, autocommit=False,
> extension=[ZopeTransactionExtension()])
> DBSession = scoped_session(maker)
> DeclarativeBase = declarative_base()
>
> class Parent(DeclarativeBase):
> __tablename__ = 'parent'
> id = Column('id', types.Integer, primary_key=True,
> nullable=False)
>
> class Child(DeclarativeBase):
> __tablename__ = 'child'
> id = Column('id', types.Integer, primary_key=True,
> nullable=False)
> id_parent = Column('id_parent', types.Integer,
> nullable=True)
> parent = relation(Parent,
> primaryjoin=id_parent==Parent.id,
> foreign_keys=[Parent.id],
> backref=backref('children',
> foreign_keys=[id_parent],
> cascade='all, delete-orphan',
> passive_deletes=False))
>
> p = Parent()
> c = Child()
> p.children.append(c)
> DBSession.add(p)
> DBSession.flush()
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---