Hi Michael,
So just to be sure, if i understand correctly and i have:
func = lambda person: person.age > 17 or person.length > 1.75
I can do:
class Person(Base):
# ....
@hybrid_method
def run_filter(self, fn):
return fn(self)
session.query(MyClass).filter(MyClass.run_compare(func))
to get all objects of class Person where obj.age>17 or obj.length>1.75
Is that without loading all records and filtering afterwards??
That's pretty impressive i think (and really helpful to me personally)
Cheers, Lars
On Monday, August 26, 2013 5:23:07 PM UTC+2, Michael Bayer wrote:
>
>
> On Aug 26, 2013, at 11:14 AM, lars van gemerden
> <[email protected]<javascript:>>
> wrote:
>
> Hi all,
>
> This might be a bit of a stretch but here it goes:
>
> Say that i have a lambda function that takes a mapped object and teturns
> whether it is valid; e.g:
>
> lambda person: person.age > 17 or person.length > 1.75
>
> is it possible to use this method to perform an sqla query on the
> database? Perhaps by using hybrid_method?
>
> Cheers, Lars
>
> PS: this might seem strange question, but it would save me a lot of work
> and/or would make my internal and user interfaces a lot more consistent.
>
> PPS: i do also have a string representation of the lambda functions, if
> that helps
>
>
>
> I'm not sure if you need these to remain as lambdas, sure you can just
> pass it to a hybrid_method:
>
> class MyClass(Base):
> # ....
>
> @hybrid_method
> def run_compare(self, fn, *args):
> return fn(*args)
>
>
> query(MyClass).filter(MyClass.run_compare(some_lambda, some_other_object))
>
--
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/groups/opt_out.