在下面的代码中,我插入一个数据,然后第二个将第一个数据指定为父数据。两个数据都进入,但没有创建父关系。我做错了什么?
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()
答案 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
字段。