2

プロパティのエンティティに基づいてデータストア エンティティを取得するにはどうすればよいですか? マルチステップの filter() get() プロセスを実行する必要がありますか? または、1 ピースの get() でこれを達成できますか?

たとえば、Datastore モデル Channel があるとします。

class Channel(db.Model):
    name = db.StringProperty(required = True)

名前に基づいてチャンネルを削除したい場合、次のようにするにはどうすればよいですか。

name = "ch1"
channel = Channel.get("name = " name)
channel.delete()

この get ステートメントは機能しません。これを達成する実際の方法は何ですか?どうもありがとう!

4

3 に答える 3

1

これは、プロパティに従ってエンティティを取得する方法です

q = db.Query(Channel)
q.filter("name =", name)
entities = q.fetch(100) # The number of entities you want to be returned
if entries:    
    db.delete(entries)
于 2013-04-17T16:08:22.137 に答える
0

名前フィールドがエンティティを一意に識別する場合は、Sudhir が述べたようにそれをキーとして使用することをお勧めします。ただし、同じ名前のエンティティが複数ある場合は、最初にそれらを取得する必要があります

all = Channel.all(keys_only=True).fetch(1000) # only need key to delete
db.delete(all)

一行バージョン

db.delete(Channel.all(keys_only=True).fetch(1000))
于 2013-04-17T17:45:19.077 に答える