0

我想运行查询

SELECT * FROM users WHERE uname='foo' AND passwd='bar'

这总是返回 None。我的表有与查询匹配的条目。我觉得它必须与索引有关。我将 index.yaml 编辑为

indexes:

- kind: users
  ancestor: no
  properties:
  - name: uname
    direction: asc
  - name: passwd
    direction: asc

但是当我定义时uname=db.TextProperty(required=True,indexed=True),它返回一个奇怪的错误说

<class 'google.appengine.ext.db.ConfigurationError'>: indexed must be False. 
      args = ('indexed must be False.',) 
      message = 'indexed must be False.'

我称之为奇怪,因为当我用谷歌搜索错误时,完全匹配为零。

我错过了什么?

4

1 回答 1

4

您是否尝试在管理控制台的数据存储查看器中运行查询。它建议您创建索引。

但是,文本属性不可索引。根据文档

与 StringProperty 不同,TextProperty 值的长度可以超过 500 个字符。但是,TextProperty 值未编入索引,不能用于过滤器或排序顺序。

于 2012-06-08T16:45:49.443 回答