Запросы немного медленнее, и поэтому они используют немного больше ресурсов. ReferenceProperty не требует reference_class. Таким образом, вы всегда можете определить бизнес как:
class Business(db.Model):
bus_contact_info_ = db.ReferenceProperty()
Там также могут быть лучшие варианты для вашей структуры данных. Посмотрите статью Моделирование отношений для некоторых идей.
Это отображение один-к-одному? Если это сопоставление «один к одному», возможно, вам лучше денормализовать ваши данные.
Это когда-нибудь меняется? Если нет (и это один-к-одному), возможно, вы могли бы использовать группы сущностей и структурировать свои данные так, чтобы вы могли просто напрямую использовать ключи / имена ключей. Вы могли бы сделать это, сделав BusinessInfo дочерним предприятием Business, а затем всегда использовать «i» в качестве имени ключа. Например:
business = Business().put()
business_info = BusinessInfo(key_name='i', parent=business).put()
# Get business_info from business:
business_info = db.get(db.Key.from_path('BusinessInfo', 'i', parent=business))
# Get business from business_info:
business = db.get(business_info.parent())