1

我在 GAE 模型中有一个属性,它是 DATETIME 类型。当我尝试按此属性对查询结果进行排序时,会引发以下错误:

TypeError: issubclass() arg 1 must be a class

这是我的查询:

data_query = db.Query(docket).filter('last_update_date >', date).order('-last_update_date')
4

1 回答 1

2

db.Query期望提供一个作为其第一个参数(或model_class关键字参数)。

class Query (model_class=None, ...)
    model_class
        Model (or Expando) class representing the entity kind
        to which the query applies.

来源

当我将派生类(实体)的实例提供给. 尝试替换为类或.db.Modeldb.Querydocketdocket.__class__

db.Query.order方法尝试测试model_class是否是db.Expando. 由于它使用issubclass的内置 Python 函数,因此它要求它的参数是一个类。过滤之所以有效,是因为db.Query.filter不会尝试确定您的模型是否扩展db.Expando

于 2013-07-12T07:45:07.350 回答