On Jul 16, 2014, at 1:29 AM, Pavel Aborilov <abori...@gmail.com> 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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to