Oleg Broytmann wrote:
>    You seldom use iterators in a boolean context. But people write
> 
> if MyTable.select():
> 
>    all the time...

I was mometarily confused now, because I was sure i came accross
situations where this did not work.

Now try this:

class MySelectResult:
    def __nonzero__(self):
        return self.count() > 0

# uncomment this, to make it work correctly
#SQLObject.SelectResultsClass.__bases__ += (MySelectResult,)

class Person(SQLObject):
    name = StringCol(alternateID=True, length=20)
    org = StringCol(length=100)

if __name__ == '__main__':
    Person.createTable()
    u1 = Person(name="joe", org="doe.com")
    u2 = Person(name="alice", org="foo.com")
    u3 = Person(name="bob", org="foo.com")

    pl = Person.select(AND(Person.q.name == 'joe',
      Person.q.org == 'foo.com'))
    if pl:
        print "Records found:"
        for p in pl:
            print p.name
    else:
        print "No records found."

Without my custom __nonzero__ method bool(pl) will yield True even
though list(pl) == []

Chris


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to