gpt4 book ai didi

python - 如何将实体的父级设置为属性?

转载 作者:行者123 更新时间:2023-11-28 23:04:45 26 4
gpt4 key购买 nike

我想做这样的事情:

e = Employee(key_name = 'john',name='john the first')
e.put()
a = Address(key_name='addr_john',street='66th street')
a.parent = e;
a.put();

addr = Address.gql("WHERE ANCESTOR IS :1", e).fetch(1) #len(addr)==0

但它不起作用,如果我在构造函数中设置父级,它就会起作用。

a = Address(key_name='addr_john',street='66th street',parent=e)

但我不想这样做,我需要在创建对象之后再做。

最佳答案

实体的父级只能在创建期间设置,因此只能在 db.Model 子类实例的构造函数中设置。尝试分配给 db.Model 实例的 parent 属性将导致其 parent() 函数被覆盖,但相应数据存储的实际父级实体不会改变。

如果您在创建子对象时有无法建立的关系,您应该考虑将其编码为普通属性。或者(如果由于您需要的事务而无法承受没有父子关系的后果),您可以尝试推迟子对象的创建,直到您可以确定它应该拥有哪个父对象。由于显然您还使用父数据(即 Employeename)为子实体建立 key_name,这种方法似乎很有意义。 (键名,如父级,也只能在实体创建期间设置)。

关于python - 如何将实体的父级设置为属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com