12

Moje pytanie jest bardzo podstawowe, chcę poznać bezpośredni i prawidłowy sposób uzyskiwania wartości atrybutów jednostki nadrzędnej od dziecka w App Engine Python. Na przykład mam następujący schemat modelu. Używam Python 2.7 i NDB.Jak zapytać jednostkę nadrzędną od elementu podrzędnego w Google App Engine (Python) NDB/Datastore?

class Gallery(ndb.Model): 
    category = ndb.StringProperty() 
    title  = ndb.StringProperty() 
    subtitle = ndb.StringProperty() 

class Image(ndb.Model): 
    blob_key = ndb.BlobKeyProperty() 
    title  = ndb.StringProperty() 
    gallery  = ndb.StringProperty() 
    is_slider = ndb.StringProperty() 

Tutaj "Galeria" jest elementem nadrzędnym "Obraz". Tworzą grupę encji Exhibition => Gallery => Image. Chcę wyświetlać obrazy z modelu obrazu wraz z opisem galerii, do której należą. Mogę uzyskać dostęp do elementu podrzędnego z elementu nadrzędnego (Obraz z galerii), ale nie odwrotnie. Nie chcę używać modelu obrazu jako StructuredProperty w modelu galerii. Większość obrazów wyświetlam ze wszystkich obrazów na podstawie innych flag niż galerii (jedna z sytuacji generuje pokaz slajdów ze wszystkich obrazów, jeśli is_slider = "tak", więc wysyłanie zapytań bezpośrednio z obrazu), ale wciąż chce wyświetlać informacje o powiązanych galeriach dlaczego chcę wiedzieć, jak uzyskać dostęp do danych macierzystych.

Uważam, że jest to bardzo ogólny problem i szuka prostego rozwiązania, takiego jak bezpośredni dostęp do elementu nadrzędnego, zamiast powrotu do początku grupy encji i modelu galerii zapytań z pewną złożoną logiką. Każda pomoc jest doceniana.

Odpowiedz