0

このモデルを考えると:

class TestModel(db.Model):
  names = db.StringListProperty(required=False)

空の名前プロパティを持つエンティティを見つけたいので、これを試しました:

TestModel.all().filter('names ==', [])

ただし、例外が発生します: BadValueError: リストのフィルタリングはサポートされていません

この非常によく似た質問から、私も試しました:

TestModel.all().filter('names <', None)
TestModel.all().filter('names ==', None)

しかし、これらもうまくいきませんでした。

4

1 に答える 1

2

リストのフィルタリングは、リスト内の各アイテムに対してフィルタリングします。したがって、filter('names ==', 'x') を実行すると、names リストに 'x' を含むすべてのエンティティが検出されます。

残念ながら、この方法では空のリストを見つけることができません。最善の策は、リスト サイズの整数またはブール値 isEmpty のいずれかの別のプロパティをテスト モデルに追加し、代わりにそれに対してクエリを実行することです。

于 2013-03-13T18:26:39.150 に答える