rest_gaeでのユーザ削除とその関連データの削除

GAEでユーザ削除と、それに関連するデータ削除のケースを考える。
前提として、rest_gae+webapp2を使っている。

今回は「関連するデータ」を「投稿データ」とする。
ソースコードで表すと、下の例のように投稿データを表すUserPostクラスが、ownerとしてUserクラス(ユーザ)を持つ。
このUserPostは複数GAEのデータストア内に存在可能なので、結果として「ユーザ」と「投稿」の1対多の関係となる。

class UserPost(ndb.Model):
    owner = ndb.KeyProperty(kind='User') #投稿したUser
    description = ndb.StringProperty() #書き込み
    
    class RESTMeta:
        user_owner_property = 'owner'


【理想】
外部キーをカスケード設定して、ユーザ削除と同時に投稿データも自動削除されること

【現実】
上の理想は実現できない。。。RDBではないから。

【考えた対応策#1】
ユーザ削除後に呼ばれるコールバック関数を設定して、そのコールバック関数内で投稿データの削除を行う。そのためには、投稿データのparentをユーザにしておく必要がある。
<この対応策>:☓
<その理由>:他のモデルクラスの場合はコールバック関数が設定できるのに、Userモデルクラスに対してはコールバック関数が設定できなかった。

【考えた対応策#2】
利用者がユーザ削除ボタンを押した時(スマホアプリを想定)、アプリ側で
1,投稿データ削除
2,ユーザ削除
の順にAPI呼び出しを制御する。
<この対応策>:◯
<その理由>:ベストと言えないかもしれないが、他に解決策が見えなかったのでこれを採用する