StringListProperty の値が無いエンティティを取得したい

20 views
Skip to first unread message

Toshiharu Moriyama

unread,
Aug 17, 2011, 9:36:43 AM8/17/11
to kay-us...@googlegroups.com
こんにちは。
StringListProperty で定義された、値が空のエンティティを取得したいのですが、方法がわかりません。

IntegerProperty なら

num = db.IntegerProperty
query.filter('num', None)

で、取得できるらしいところまで調べられたのですが、
List型の取得方法がわかりませんでした。

誰か方法をご存じの方はいらっしゃいますでしょうか?

よろしくお願いします。

Takashi Matsuo

unread,
Aug 18, 2011, 7:49:08 AM8/18/11
to kay-us...@googlegroups.com
こんにちは

2011/8/17 Toshiharu Moriyama <aqua....@gmail.com>:

ListProperty や StringListProperty は、各要素ごとに index が作成されます。その index を
scan することで query を実施しますので、この Property が空であるという条件での query をすることができません。

実現するには、別の BooleanProperty を用意して、そこに「目的の ListProperty
が空かどうか」という値を保存しておき、この BooleanProperty に対して query をすると良いでしょう。

--
Takashi Matsuo
matsuo....@gmail.com
Kay's daddy

> よろしくお願いします。
>
> --
> このメールは Google グループのグループ「kay-users-ja」の登録者に送られています。
> このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/kay-users-ja/-/_4WaQ2eBL2sJ
> にアクセスしてください。
> このグループに投稿するには、kay-us...@googlegroups.com にメールを送信してください。
> このグループから退会するには、kay-users-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/kay-users-ja?hl=ja
> からこのグループにアクセスしてください。
>

Toshiharu Moriyama

unread,
Aug 18, 2011, 8:35:21 AM8/18/11
to kay-us...@googlegroups.com
回答ありがとうございます。
詳しい説明まで。
その方法でやってみます。

そして、App Engine Office Hour(ビデオチャット)お疲れ様でした。
また参加しますので、よろしくお願いします。




Toshiharu Moriyama

unread,
Aug 18, 2011, 9:23:10 AM8/18/11
to kay-us...@googlegroups.com
ああああ!ごめんなさい。
いま気がつきました。List は空ではありませんでした…。

task.tags = request.form.getlist('tags')

tags が存在しない無い場合は、task.tags[0] == u'' でした。
Eclipse Debug の Variables で見ると、しっかり task.tags.__len__ : int 1 になってた…。

query.filter('tags', u'')

で、所得出来ました。
お騒がせしました。

Toshiharu Moriyama

unread,
Aug 20, 2011, 8:54:17 PM8/20/11
to kay-us...@googlegroups.com
すいません、訂正です。


task.tags = request.form.getlist('tags')

なんですが、tags という Key があって、Value が空だったので u'' が入ってました。
JavaScriptから サーバに POST しているのですが、空だったら送らないようにしてたつもりが、してませんでした。

早とちりですいませんでした。
Reply all
Reply to author
Forward
0 new messages