要在新的Cloud Datastore模式下实现ndb.StructuredProperty的等效性?

问题描述 投票:0回答:1

在旧的ndb数据存储区中,可以创建一个StructuredProperty。这要归功于提供的ndb.Model

但是,在新的Cloud Datastore中,ndb不可用。那么,我们如何在新的Cloud Datastore中实现与ndb.StructuredProperty类似的功能?

我有一个具有一个或多个教育和经验对象的JobApplication模型:

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获得此结果?

python python-3.x google-cloud-platform google-cloud-datastore app-engine-ndb
1个回答
0
投票

如注释中所述,您可以在第一代App Engine标准运行时以外的环境中使用google-cloud-ndb。因此,您可以继续使用StructuredProperty。

© www.soinside.com 2019 - 2024. All rights reserved.