Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按'对结果进行排序;订单';在google应用程序引擎中导致错误_Python_Google App Engine - Fatal编程技术网

Python 按'对结果进行排序;订单';在google应用程序引擎中导致错误

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派生类

我在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
派生类(实体)的实例提供给
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.