私はdjango 1.0.2(およびdjangoヘルパー)でgoogleアプリケーションエンジンを使用しています。 は、あなたがこのようなものだモデルがあるとします。Googleアプリケーションエンジンの再帰的削除
今class Top(BaseModel): pass class Bottom(BaseModel): daddy = db.ReferenceProperty(Top)
、私はタイプ「上部」のオブジェクトを削除するとき、私はすべての関連する「ボトム」オブジェクトも削除することにしたいです。私は「トップ」オブジェクトを削除する事が今あるとおり
、「ボトム」のオブジェクトが滞在し、私はどこにも属していないデータを取得します。ビュー内のデータストアにアクセスする場合、私はで終わる:
Caught an exception while rendering: ReferenceProperty failed to be resolved.
私はもちろん、すべてのオブジェクトを検索し、削除しますが、私の本当のモデルは深い少なくとも5つのレベルであることから、私は方法があります望んでいる可能性がありこれを自動的に行うことができるようにします。
私はそれは、Javaで動作し、それはかなり私も欲しいもののようです方法についてこのarticleを見つけました。
誰も私はdjangoで同様の動作を得ることができるか知っていますか?
興味深いことに、db.deleteは各エンティティでdelete()を呼び出しますか?それは恐ろしく最適化されているので、私はあなたがこれらの2つのトリックを組み合わせることができないことを少し疑っています。しかし、keys_onlyの良い点。 –
いいえ、db.delete()は、削除するすべてのキーを並列に送信する単一のRPCに直接対応します。 Entity.delete()は単にdb.delete(self)を呼び出す構文的な砂糖です。 –
'db.delete(top.bottom_set)'はうまく動作しませんか? –