Google AppEngine NDB查询是奇怪的野兽。 说我有一个类车(和ndb实体)的车 具有颜色和重量属性。 我能做到
Car.query(Car.color == "blue")
我从未在这种"函数调用"上看到任何Python 2文档。 有多少参数被传递?逻辑上它将是一个 这是一个布尔,但显然是"查询"可以找到来源 该参数的代码并获得Car.color,==和" blue"。 开发人员是否可以定义这些功能, 或者这是一些编译器破解?
我真正的问题是我有一个用户输入对话框 班级的字段(" Car"在这种情况下) 属性("颜色"在这种情况下) 和值,("蓝色"在这种情况下)。 如何构造和调用接受这些输入的查询?
答案 0 :(得分:4)
这是由python magic methods完成的,您的示例使用__eq__
。
要构建查询,您可以使用以下内容:
Car.query(getattr(Car, 'color') == 'red')
请务必通过致电hasattr(Car, 'color')