Hello everyone.

I was wondering what is the best way to perform a query filtering by
"not" in a python-way.

In python:
>> not(None)
True
>> not(list())
True

Let's say I have a class that has the typical "children" relationship:

class Foo(declarative_base):
        __tablename__ = "foos"

        _name = Column("name", String(50))

        _parentId = Column("parent_id", Integer, ForeignKey("foos.id"), 
key="parentId")
        _children = relationship("Foo",
                collection_class=set,
                backref=backref("_parent", remote_side=lambda: Foo.id, 
uselist=False),
        )

        def __init__(self):
                self.name = ""
                self.parentId = None
                self.parent = None
                self.children = set()

And I want to query the class where children "is not" (meaning is None
or is an empty set).

I can easily query with the filter (Foo.children == None) but what
about the empty set? And a comparator suitable for both?  (empty sety
and None) I'm sure there's a way, but googling "not sqlalchemy
comparison" doesn't help much

If I try the sqlalchemy.not_, I get an SQL programming error (which
doesn't surprise me, because it generates an empty comparison)

Thank you

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