gpt4 book ai didi

python - 如何确定GAE上多模型实体的子模型?

转载 作者:行者123 更新时间:2023-11-28 17:49:15 24 4
gpt4 key购买 nike

这就是我查询联系人的方式:

contacts = Contact.all()

那么,如何判断Contact是Person还是Company,结构如下?

class Contact(polymodel.PolyModel):
phone_number = db.PhoneNumberProperty()
address = db.PostalAddressProperty()

class Person(Contact):
first_name = db.StringProperty()
last_name = db.StringProperty()
mobile_number = db.PhoneNumberProperty()

class Company(Contact):
name = db.StringProperty()
fax_number = db.PhoneNumberProperty()

最佳答案

您可以使用 PolyModel 类方法 class_name()。引用自 App Engine 文档:

PolyModel.class_name()

Returns the name of the class. A class can override this method if the name of the Python class changes, but entities should continue using the original class name.

在您的代码中,如果您插入如下两个对象:

p = Person(first_name='John',
last_name='Doe',
mobile_number='1-111-111-1111')
p.put()

c = Company(name='My company',
fax_number='1-222-222-2222')
c.put()

然后通过执行获取所有对象并打印类名:

for c in Contact.all():
logging.info('Class Name: ' + c.class_name())

输出:

类名:人

类名:公司

有关 PolyModel 类的信息,请查看 The PolyModel Class

关于python - 如何确定GAE上多模型实体的子模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322134/

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