It was working from gecko...

I hadn't considered my dumbness.. I went trough all the records in my
database and it turns out I was having way more WhateverClass in the
ContainerClass with id == 5 than I thought!!! It was working from the
beginning!

2011/2/12 Hector Blanco <white.li...@gmail.com>:
> Sorry... I just sow a typo:
>
>
> Hello everyone.
>
> I am trying to get classes whose foreign key is "whatever" but I
> always get all the entries in the database, instead of the ones that
> match the criterion.
>
> Let's say I have a couple of classes using declarative base in a
> relationship N:1. I have that modeled like:
>
> class OtherClass(declarativeBase):
>        __tablename__ = "other_classes"
>        _id = Column("id", Integer, primary_key=True)
>        id = sqlalchemy.orm.synonym('_id', descriptor=property(getId, setId))
>
>
> class WhateverClass(declarativeBase):
>        __tablename__ = "whatever_classes"
>
>        _id = Column("id", Integer, primary_key=True)
>        _total = Column("total", Integer)
>        _otherClassId = Column("other_class_id", Integer,
>                                ForeignKey("other_classes.id"))
>
>        _otherClass = relationship("OtherClass", uselist=False)
>
>        id = sqlalchemy.orm.synonym('_id', descriptor=property(getId, setId))
>        total = sqlalchemy.orm.synonym('_total',
>                descriptor=property(getTotal, setTotal))
>        otherClassId = sqlalchemy.orm.synonym('_otherClassId',
>                descriptor=property(getOtherClassId, setOtherClassId))
>        otherClass = sqlalchemy.orm.synonym('_otherClass',
>                descriptor=property(getOtherClass setOtherClass))
>
> If I try to do:
>    from myClasses import WhateverClass
>    session.query(WhateverClass.WhateverClass).filter(otherClassId <= 5).all()
>
> I get a list with all the instances of WhateverClass that are stored
> in the database, not only the ones who are linked to the OtherClass
> with id <= 5
>
> But if I do session.query(WhateverClass.WhateverClass).filter(total <=
> 100).all() I properly get instances of WhateverClass with a "total"
> <=100.
>
> Do I have to use a joined query or something like that?
>
> Thank you in advance!
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to