1

Раньше я использовал db вместо ndb. Теперь я переношу свой код. Db.Model эквивалентПочему у key = model_instance.key нет !!! рядом с ним в db до ndb docs?

ключ = model_instance.key()

ndb.model:

ключ = model_instance.key

который имеет Нет !!! рядом с ним. Но он не говорит, что мы должны использовать вместо этого.

Как я напишу в ndb? И почему это не хорошо?

p.key().id() 
+0

Не работает ли 'p.key.id()'? – mgilson

+0

p.key.id() должен работать – marcadian

+0

Он делает, но в документах говорится: «Нет!» рядом с key = model_instance.key, поэтому мне было интересно, есть ли что-то еще, что я должен использовать. – John

ответ

4

Я полагаю, вы имеете в виду NDB Cheat Sheet, более конкретно, к 4-й строке в Entities таблице:

key = model_instance.key() | key = model_instance.key # no() !! 

Текст фактически # no() !!, имеется в виду не скобку/не вызов функции. Что является правильным в контексте, так как это метод получения ключа объекта, который является атрибутом в ndb, а также вызовом функции в db. Это не означает «не использовать».

+0

хорошо ... это объясняет это – marcadian

+0

Я имел в виду https://cloud.google.com/appengine/docs/python/ndb/db_to_ndb, который выглядит очень похоже на документ, на который вы ссылались. Ах, это проясняет, что это значит. Благодарю. – John