First off, sorry if it turns out that what I'm trying to do is smoke crack
here, I'm by no means a DB or SQLA expert. =)

I have two classes, Person and Organization, that use table inheritance to
inherit from Contact. ( Person.id is an fkey to Contact.id ), which is
working fine.

I want to search from a search box and get a list of all contacts.
Normally, when I'm after a set of things, I do this:

def build_query(self):
  return self.session.query(Person)

def filter_query(self, query)
    if self.search_form_values.get('name_last',None):
        query =
query.filter(Person.name_last==self.search_form_values.get('name_last') )
    ...
    return query

And then elsewhere the query gets executed. The problem is that I want to
get back a list of Contact objects,
but I want to filter on Organization.name, Person.name_last, and
Person.name_first, all from the values typed
into the 'name' box on the search form. I can't figure out how to do this
with one query, not sure if it's even possible.
I'd sure like to avoid having two separate queries with interleaved results
though.

Is there some filtering kung fu that would allow me to do the above? ie

- get back all Contacts that:
  - have name_last or name_first match, if the Contact is a Person
  - have name match, if the contact is an Organization

Thanks
Iain

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