-
Notifications
You must be signed in to change notification settings - Fork 37
Open
Description
参考代码 2.9.3 版本:https://github.com/leancloud/python-sdk/blob/v2.9.3/leancloud/query.py#L117
query = Query(queries[0]._query_class._class_name)- 不应该使用 Query 声明新的对象,而应该使用 cls 来声明,否则会导致继承 Query 得来的 MyQuery 类的 or_ 方法和 and_ 方法返回父类声明的实例。
In [1]: from leancloud import Query
In [2]: class MyQuery(Query):
...: pass
...:
In [3]: type(MyQuery('User').or_(MyQuery('User'), MyQuery('User')))
Out[3]: leancloud.query.Query- 没有正确处理 ObjectMeta 中特殊处理过的 _ 开头的表。
In [1]: from leancloud import User
In [2]: User.query._query_class
Out[2]: leancloud.user.User
In [3]: User.query.or_(User.query, User.query)._query_class
Out[3]: leancloud.object_._UserMetadata
Metadata
Assignees
Labels
No labels