HTTP リクエストを介して 1 つ以上のキー ID (urlsafe キー) の json 配列を取得しています。そして今、私は定義したUserListPropertyにこの ID/ID のキー/キーを保存したいと思います。ndb.KeyPropertyを拡張する、定義された UserProperty を拡張します。
したがって、UserPropertyを 1 つのキーだけで使用すると、すべて問題ありません。キーは通常、参照としてデータストアに保存されます。しかし、UserListPropertyを使用すると (キーが 1 つだけでも)、データストアはそれを次のように格納します。[datastore_types.Key.from_path(u'Example', 20L, u'User', 21L, _app=example~db')]
この鍵はどこに保管しますか? UserListProperty を持つ別のモデル インスタンス List の属性 (リーダー) にあります。
さて、UserListProperty の定義またはこのプロパティへの書き込み方法のいずれかで何か間違ったことをしなければならないと思います。私は両方を見せたい:
class UserProperty(ndb.KeyProperty):
def __init__(self, *args, **kwargs):
super(UserProperty, self).__init__(*args, **kwargs)
self._visible = False
self._verbose_name = 'User key'
class UserListProperty(UserProperty):
def __init__(self, *args, **kwargs):
super(UserListProperty, self).__init__(*args, **kwargs)
self._repeated = True
self._visible = False
self._verbose_name = 'List containing user keys.'
for viewer in viewerlist:
key = Key(urlsafe=viewer)
if not key in list.reader:
list.reader.append(key)
誰かが私を助けてくれることを願っています..私はdb.ReferencePropertyについて何かを読んで、それをここに入れようとしました(KeyPropertyの代わりに)。しかし、うまくいきません。多分私は何か間違ったことをしました。または、役に立たないだけです。