Достигаете ли вы эквивалентности ndb.StructuredProperty в новом режиме облачного хранилища данных? - PullRequest
0 голосов
/ 26 марта 2020

В старом ndb хранилище данных можно создать StructuredProperty. Это было благодаря предоставленной ndb.Model.

Однако в новом облачном хранилище данных ndb недоступен. Итак, как мы можем реализовать функциональность, аналогичную ndb.StructuredProperty, в новом облачном хранилище данных?

У меня есть модель JobApplication, которая имеет один или несколько объектов Education и Experience:

class Education:
    def __init__(self, institution):
        institution = self.institution

class Experience:
    def __init__(self, workplace):
        workplace = self.workplace

class JobApplication:
    def __init__(self):
        self.educations = None
        self.experiences = None

    def add_education(self, education):
        self.educations.append(education)

    def add_experience(self, experience):
        self.experiences.append(experience)        


edu_1 = Education('aol')
edu_2 = Education('myspace')

jobapp = JobApplication()
jobapp.add_education(edu_1)
jobapp.add_education(edu_2)

Хотя этот вид работает на reading сущность, он становится сложным при попытке update сущности. Например, как я смогу обновить edu_2 в объекте JobApplication?

Использовать старый подход ndb очень просто:

class Education(ndb.Model):
    institution = ndb.StringProperty()

class JobApplication(ndb.Model)
    education = ndb.StructuredProperty(Education, repeated=True)

Как мне достичь этого результата используете новый Cloud Datastore?

1 Ответ

0 голосов
/ 26 марта 2020

Как отмечается в комментариях, вы можете использовать google-cloud-ndb в средах, отличных от стандартных сред выполнения первого поколения App Engine. Таким образом, вы можете продолжать использовать StructuredProperty.

...