Je suis un problème avec AppEngine que je ne peux pas à comprendre:AppEngine NDB PolyModel obtenir des propriétés
from google.appengine.ext import ndb
from google.appengine.ext.ndb import polymodel
class Item(polymodel.PolyModel):
name = ndb.StringProperty()
type = ndb.StringProperty(choices=["Medical","Food"])
sub_category_type = ndb.StringProperty()
sub_category_sub_type = ndb.StringProperty()
class MedicalItem(Item):
med_sub_type = ndb.StringProperty()
can_split_item = ndb.BooleanProperty()
class ItemInHouse(ndb.Model):
item = ndb.StructuredProperty(Item)
amount_of_item = ndb.FloatProperty()
Donc, en utilisant les classes ci-dessus, quand je fais une recherche pour tous ItemInHouse, puis je tente de accéder à ces iteminhouse qui ont un MedicalItem, je suis incapable d'obtenir med_sub_type. C'est:
itms = ItemInHouse.query(ItemInHouse.item.type == "Medical").fetch()
for itm in itms:
self.response.out.write(itm.item.med_sub_type)
génère une erreur au itm.item.med_sub_type. J'ai même essayé: itm.item._values["med_sub_type"].b_val
mais ceci jette toujours une AttributeError: l'objet 'Item' n'a aucun attribut 'med_sub_type'. Je vois dans la propriété class_
il a les propriétés Item
et MedicalItem
, mais je suis incapable d'y accéder. Des idées?
Merci Jon
S'il y a assez de demande, je serais heureux de tenter de l'implémenter. – bossylobster
Je pense que ce serait génial – Jon