将(或扩展?)追加到for循环而不是替换它

时间:2014-05-18 21:56:09

标签: google-app-engine google-cloud-datastore app-engine-ndb

我有两个模型:主题和内容。 主体实体是内容实体的父母。例如,生物化学(主题)是中间代谢(内容)和氮代谢(内容)的父母。我无法在一个可呈现的形式中查询这些。目标是输出如:生物化学 - 碳氢化合物满足,氮气满足,脂质满足。免疫学 - 先天,适应性;英语 - a,b,c,d等。过去我只会制作一个包含这些信息的海量数据库;但我认为使用Parent / Child系统将使数据库更易于管理。我会非常感谢任何指示,我真的不知道从哪里开始。

def get(self):

  #Get all the Subjects
  subjects = ndb.gql('SELECT __key__ FROM Subject ORDER BY order ASC')
  subjectNames = ndb.gql('SELECT name FROM Subject ORDER BY order ASC')
  values = {'subjectNames':subjectNames}

  #Ancestor query
  values['contents'] = []
  for s in subjects:
    contents = Content.query(ancestor=s).fetch()
    values['contents'].extend(contents)
  self.response.out.write(template.render('1_home.html',values))

1 个答案:

答案 0 :(得分:1)

在该循环中,您不希望每次都覆盖它,而是要附加到它。使内容成为一个列表,然后在循环中附加到它。

values["contents"] =[] for s in subjects: ... values["contents"].extend(the fetch)