我在 GAE 模型中有一个属性,它是 DATETIME 类型。当我尝试按此属性对查询结果进行排序时,出现以下错误:
类型错误:issubclass() arg 1 必须是一个类
这是我的查询:
data_query = db.Query(docket).filter('last_update_date >', date).order('-last_update_date')
最佳答案
db.Query
期望提供一个 class 作为其第一个参数(或 model_class 关键字参数)。
class Query (model_class=None, ...)
model_class
Model (or Expando) class representing the entity kind
to which the query applies.
当我向 提供
。尝试将 db.Model
派生类(实体)的实例时,我成功重现了您的问题db.Querydocket
替换为类或 docket.__class__
。
当db.Query.order
方法尝试测试model_class是否是db.Expando
的子类时,会发生异常。由于它使用了issubclass的内置Python函数,它要求其参数是一个类。过滤之所以有效,是因为 db.Query.filter
不会尝试确定您的模型是否扩展 db.Expando
。
关于python - 在 Google 应用引擎中按 'order' 对结果进行排序导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609020/