mógłbym użyć trochę pomoc w AppEngine ziemi ...Pobieranie tylko klucz/id z ReferenceProperty w App Engine
Używanie [Python] API tworzę relacje jak w poniższym przykładzie z docs:
class Author(db.Model):
name = db.StringProperty()
class Story(db.Model):
author = db.ReferenceProperty(Author)
story = db.get(story_key)
author_name = story.author.name
Jak rozumiem, ten przykład spowoduje utworzenie dwóch zapytań dotyczących datastore. Jeden, aby pobrać Historię, a następnie jeden, aby wyrazić szacunek Autorowi, aby uzyskać dostęp do nazwiska. Ale chcę, aby móc pobrać identyfikator, więc zrobić coś takiego:
story = db.get(story_key)
author_id = story.author.key().id()
Chcę tylko uzyskać identyfikator z odniesienia. Nie chcę mieć do szacunku (w związku z tym zapytaj datastore) o wartość ReferenceProperty.
Od czytanie dokumentacji jest napisane, że
gdy wartość ReferenceProperty jest klucz
Co prowadzi mnie do myślenia, że może po prostu zadzwonić .id() na wartości odniesienia za. Ale jest również napisane:
Model ReferenceProperty udostępnia funkcje dla wartości właściwości Key, takich jak automatyczne dereferencje.
Nie mogę znaleźć niczego, co wyjaśnia gdy to bazowanie odbywa?
Czy można bezpiecznie wywołać funkcję .id() w wartości ReferenceProperty?
Czy można założyć, że wywołanie funkcji .id() nie spowoduje wyszukiwania w bazie danych?
See [ReferenceProperty: .get_value_for_datastore() -> .get_key() - Google Groups] (https://groups.google.com/forum/#!topic/google-appengine -python/Ai90diACDiA) – Pat