1

データを保存する必要があります。問題は、種類名と同じモデルの名前しか知らないことです

class Tasks(ndb.Model):
    title = ndb.StringProperty()

すでに鍵を持っているなら、私はできる

model = ndb.Key(urlsafe=key).get()
model.title = "new tasks"
model.put()

新しいエンティティを保存する必要があるのですが、どうすればいいですか? ありがとう

4

3 に答える 3

1

ユーザーがあらゆる種類のモデルをインスタンス化して保存できるようにすることは、おそらく非常に悪い考えです。そのため、直接マッピングを行うことはおそらく間違ったアプローチです。また、内部データストア表現を外部 API に直接結合するため、追加の制限が課せられます。

代わりに、次のように自分でマッピングを定義することをお勧めします。

model_map = {
    'external_name': model.MyModel,
    # ...
}
于 2012-04-05T05:53:25.933 に答える
0
ndb.Model._kind_map['Tasks'](title='...')

またはもっと一般的なもの、

eval('Tasks')(title='...')

どちらの場合も、事前にモデルをインポートする必要があります。

または

getattr(models, 'Tasks')(title='...')

ifmodelsは、モデルが存在するpythonモジュールです。

于 2012-04-04T12:59:22.240 に答える
0

DBの場合

from google.appengine.ext.db import class_for_kind
class_for_kind(model_name) -> returns model Class

NDB の場合

from google.appengine.ext import ndb
ndb.Model._kind_map[model_name] -> returns model Class
于 2015-03-27T20:25:27.793 に答える