Python 数据存储一对多谷歌应用程序引擎

Python 数据存储一对多谷歌应用程序引擎,python,angularjs,google-app-engine,google-cloud-datastore,Python,Angularjs,Google App Engine,Google Cloud Datastore,我正在努力在模板中显示我的数组项。刚从GAE中的实体关系开始,我没有找到合适的解决方案。我是否必须首先在处理程序中执行查询。如果是这样的话,那是因为我在逻辑上挣扎 数据存储项目实体示例显示 数据存储员工实体示例显示 Project.py class Project(ndb.Model): projectID = ndb.IntegerProperty(required=True) title = ndb.StringProperty(required=True) de

我正在努力在模板中显示我的数组项。刚从GAE中的实体关系开始,我没有找到合适的解决方案。我是否必须首先在处理程序中执行查询。如果是这样的话,那是因为我在逻辑上挣扎

数据存储
项目
实体示例显示

数据存储
员工
实体示例显示

Project.py

class Project(ndb.Model):
    projectID = ndb.IntegerProperty(required=True)
    title = ndb.StringProperty(required=True)
    description = ndb.StringProperty(required=True)
    startAt = ndb.DateTimeProperty(indexed=True)
    endAt = ndb.DateTimeProperty()
    isFullDay = ndb.BooleanProperty()
    days = ndb.KeyProperty(kind='CompanyDay', repeated=True)
    employees = ndb.KeyProperty(kind='Employees', repeated=True)
    client = ndb.KeyProperty(kind='Client')

class Employees(ndb.Model):
    name = ndb.StringProperty()
    role = ndb.StringProperty()
模板

数据
通过angular的
http
服务从后端获取

 <md-content  class="md-padding projects" layout="row" layout-wrap>
        <md-card ng-repeat="data in controller.projects" flex="20" ng-click="editProject(data)">
            <img src="" alt="">
            <md-card-content>
                <div class="project-info">
                    <h2 class="md-title">{{ data.title }}</h2>
                    <p>{{ data.description }}</p>
                    <p>{{ data.employees }}</p>

                </div>
            </md-card-content>
        </md-card>
    </md-content>
从角度-从服务器请求的代码

    var vm = this;
    vm.projects = [];
    $http.get('/comments')
        .then(function(result) {
            console.log(result);
            vm.projects = result.data;
         });
从数据存储中将员工显示为


您可以将日期处理程序更改为处理ndb.Key,以便在返回的json中正确呈现员工集合

def date_handler(obj):
    print obj
    if isinstance(obj, datetime):
        return obj.isoformat()
    elif isinstance(obj, ndb.Key):
      return obj.get().to_dict()
    else:
        return str(obj)

您可能需要更改此方法的名称,因为它不再只是处理date_

您可以将date_处理程序更改为处理ndb.Key,以便在返回的json中正确呈现员工集合

def date_handler(obj):
    print obj
    if isinstance(obj, datetime):
        return obj.isoformat()
    elif isinstance(obj, ndb.Key):
      return obj.get().to_dict()
    else:
        return str(obj)

您可能需要更改此方法的名称,因为它不再只是处理日期。\u

请不要发布代码的图片。另外,您需要实际发布检索数据的代码。编辑后的帖子将服务器获取代码包含在angular中。响应/注释的Python代码是什么?现在包含在edit中请不要发布代码图片。另外,您需要实际发布正在检索数据的代码。编辑后的文章将在angular中包含服务器获取代码。那么响应/comments的Python代码是什么?现在包含在edit中