Скажем, у меня есть два класса:
class A(db.Model):
class B(db.Model):
a_reference = ReferenceProperty(A)
Теперь я могу сделать следующее:
a = A()
a.put()
b = B();
b.a_reference = a.key()
b.put()
Документация гласит следующие две вещи:
Значение ReferenceProperty можно использовать так, как если бы оно было экземпляром модели, а объект хранилища данных будет извлечен, а экземпляр модели будет создан при первом использовании таким способом.
И позже также говорится:
Приложение может явно db.get () значение ReferenceProperty (который является ключом), чтобы проверить, существует ли ссылочная сущность.
Так что это значит?Это значение key
, но может использоваться экземпляр модели?
Если я сделаю:
a2 = b.a_reference
a2 будет иметь тип A
, а не key
.Означает ли это, что переменная a_reference
будет вести себя как экземпляр модели до тех пор, пока этот экземпляр не будет удален, после чего он вернет ключ (указывающий на несуществующий экземпляр)?