0
私はGoogleのデータストアにクラスのユニークを強制する必要があります。ここで私は一意Googleデータストアで一意のデータストアエンティティの複製を作成するにはどうすればよいですか?
from google.appengine.ext import ndb
from webapp2_extras.appengine.auth.models import Unique
class UserTag(ndb.Model)):
user_key = ndb.KeyProperty(kind='User', required=True)
name = ndb.StringProperty()
def _pre_put_hook(self):
super(UserTag, self)._pre_put_hook()
success = Unique.create(self.user_key)
if not success:
raise Exception('Cannot create unique key: %s' % unique_key)
私はUserTag
のインスタンスが変更されるたびarchive
名前空間にUserTag
のバージョンを維持したいまでは正常に動作を強制する方法です。
cloned_user_tag = UserTag(user_key=orig.user_key, name=orig.name, namespace='archive')
cloned_user_tag.put(cloned_user_tag) # throw exception
はその後例外は、この問題を回避する最善の方法は何
Exception: Cannot create unique key: UserTag:123
をスローされますか?一意性強制を一時的に中断する最善の方法は何ですか?名前空間がarchive
が、
1であれば多分私はどのように私は、現在の名前空間に
2を知ることができます)Unique.create
をスキップすることができます)私はあなたが_pre_put_hook()
内の名前空間を確認することができると信じて、より良い解決策