Да.Доступ всегда вызывает подзапрос ReferenceProperty.
Я обычно сохраняю еще два свойства при использовании ReferenceProperty.При сохранении эталонной модели я также сохраняю строку, представляющую ключ, и целое число для идентификатора.
class MyObject(db.Model):
reference = db.ReferenceProperty()
referenceStrKey = db.StringProperty()
referenceId = db.IntProperty()
В последнее время я храню ключ только в виде строки, а затем объявление в свойствах:
class MyObject(db.Model):
referenceStrKey = db.StringProperty()
@property
def reference(self):
return RefModel.get(db.Key(self.referenceStrKey))
@property
def referenceId(self):
return db.Key(self.referenceStrKey).id()