Python 按'对结果进行排序;订单';在google应用程序引擎中导致错误
我在GAE模型中有一个属性,它是DATETIME类型。当我尝试按此属性对查询结果进行排序时,会出现以下错误:Python 按'对结果进行排序;订单';在google应用程序引擎中导致错误,python,google-app-engine,Python,Google App Engine,我在GAE模型中有一个属性,它是DATETIME类型。当我尝试按此属性对查询结果进行排序时,会出现以下错误: TypeError:issubclass()arg 1必须是类 我的问题是: data_query = db.Query(docket).filter('last_update_date >', date).order('-last_update_date') db.Query要求提供一个类作为其第一个参数(或model\u class关键字参数) 当我将db.Model派生类
TypeError:issubclass()arg 1必须是类
我的问题是:
data_query = db.Query(docket).filter('last_update_date >', date).order('-last_update_date')
db.Query
要求提供一个类作为其第一个参数(或model\u class关键字参数)
当我将db.Model
派生类(实体)的实例提供给db.Query
时,我设法重现了您的问题。尝试用类或摘要替换docket
。\uuuuu class\uuuu
当
db.Query.order
方法尝试测试model_类是否是db.Expando
的子类时,会发生异常。由于它使用的是内置Python函数,因此要求其参数为类。过滤之所以有效,是因为db.Query.filter
不会试图确定您的模型是否扩展了db.Expando
如果它实际上只是一个属性,而不是一个数据库字段,那么过滤和排序都不会起作用。docket
是扩展了db.Model
的模型吗,除非您有绝对的需要,否则请考虑改用旧的db
@mawimawi,过滤效果非常好。@TomaszŁazarowicz,是的,docket是模型,它扩展了db.model,是的,我计划转到ndb
class Query (model_class=None, ...)
model_class
Model (or Expando) class representing the entity kind
to which the query applies.