我无法将父级分配给Google App Engine数据存储区中的子级。我究竟做错了什么?

时间:2009-08-11 14:18:34

标签: google-app-engine

在下面的代码中,我插入一个数据,然后第二个将第一个数据指定为父数据。两个数据都进入,但没有创建父关系。我做错了什么?

from google.appengine.ext import db

class Test_Model(db.Model):
  """Just a model for testing."""
  name = db.StringProperty()

# Create parent data
test_data_1 = Test_Model()
test_data_1.name = "Test Data 1"
put_result_1 = test_data_1.put()

# Create child data
test_data_2 = Test_Model()
test_data_2.name = "Test Data 2"
# Here's where I assign the parent to the child
test_data_2.parent = put_result_1
put_result = test_data_2.put()

query = Test_Model.all()

results = query.fetch(100)
for result in results:
  print "Name: " + result.name
  print result.parent()

2 个答案:

答案 0 :(得分:2)

我现在意识到自己的误解。您必须在创建时设置父级,如下所示:

test_data_2 = Test_Model(parent = put_result_1)

以下是后代的完整固定代码示例。

from google.appengine.ext import db

class Test_Model(db.Model):
  """Just a model for testing."""
  name = db.StringProperty()

# Create parent data
test_data_1 = Test_Model()
test_data_1.name = "Test Data 1"
put_result_1 = test_data_1.put()

# Create child data
test_data_2 = Test_Model(parent = put_result_1)
test_data_2.name = "Test Data 2"
put_result = test_data_2.put()

query = Test_Model.all()

#query.filter('name =', 'Test Data 1')
#query.ancestor(entity)

results = query.fetch(1000)
for result in results:
  print "Name: " + result.name
  print result.parent()

答案 1 :(得分:0)

您的模型中的哪个位置定义了字段parent?您只定义name

因此,GAE会忽略未知的parent字段。