GAEのDataStoreから、値がNoneのものを取り出す。

GAEのDataStoreから、値がNoneのものを取り出す。


 Google App Engineのデータストアに関する覚書。

q = FreeStuff.all().filter('url =', None)

result = q.fetch(1000)

if result :

for freestuff in result:

freestuff.delete()

 上のように、filter('url =', None)でNoneのものを取り出せる。


 None以外のものを取り出したい場合は、filter('url >', None)でOK。それはそれで納得出来る。けど、私は納得できないところでハマッたのでメモしておこう。


納得出来ないこと


 filter('url=', None) とすると、resultの件数が0件だった。(App Engine SDK 1.3.4で確認)


 何が違うかというと、「url」と「=」の間にスペースを入れてないのだ。


 デリケートすぎるぞこのやろう。いっそエラーにしてくれ。