On Jul 16, 2014, at 1:29 AM, Pavel Aborilov <[email protected]> wrote:

> Hi!
> I have two models
> 
> class DB_Object(Base):
>     __tablename__ = 'objects' 
>     id = Column(Integer, primary_key=True) 
>     name = Column(String(50), unique=True, nullable=False) 
>     type = Column(String(50), default="object") 
>     __mapper_args__ = { 'polymorphic_identity': 'object', 'polymorphic_on': 
> type }
> 
> class Contact(DB_Object): 
>     __tablename__ = 'contacts' 
>     id = Column(Integer, ForeignKey('objects.id'), primary_key=True) 
>     enable = Column(Boolean, default=False) 
>     normal_open = Column(Boolean, default=True) 
>     cr_enabled = Column(Boolean, default=False) 
>     __mapper_args__ = {'polymorphic_identity': 'contact'}
> 
> I need to delete group of contacts by id, but
> if I do
> 
> ids = (1,2,3)
> session.query(Contact).filter(Contact.id.in_(ids)).delete(synchronize_session="fetch")
> 
> it's remove only contacts and leave object in "objects" table.
> 
> If i remove like this:
> o = session.query(Contact).get(id)
> session.delete(o)
> 
> it remove objects from both tables.
> 
> How can I do this for group of id?


sorry, I read that completely wrong.   Inheritance.  Yeah, again query.delete() 
can't work for an inherited subclass like that.  You'd need to DELETE on the 
base table and again ON DELETE CASCADE would need to accommodate the child 
table.


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to