小编Ste*_*pen的帖子

从AppEngine中继承db.Expando类有缺点吗?

我正在考虑让我的所有模型继承自db.Expando类,以便支持松散的非规范化协议,从而也可以在拥有类上设置db.ReferenceProperty引用的模型的选定属性.

class ImgModel(db.Expando):
    height = db.IntegerProperty()
    width = db.IntegerProperty()
    url = db.StringProperty()
    img_data = db.BlobReferenceProperty()

class company(db.Expando):
    logo = db.DenormalizedImgProp(prefix=u'logo')

class DenormalizedImgProp(db.ReferenceProperty):
    denorm_attrs = [u'height', u'width', u'url']

    def __init__(self,prefix,verbose_name,collection_name,**attrs):
        super(DenormalizedImgProp, self).__init__(ImgModel,verbose_name,collection_name,**attrs)
        self.denorm_field_prefix = prefix

    def __set__(self, model_instance, value):
        super(DenormalizedImgProp, self).__set__(model_instance, value)
        for attr in self.denorm_attrs:
            setattr(model_instance, u'%s_%s' %
                (self.denorm_field_prefix, attr),value)
Run Code Online (Sandbox Code Playgroud)

让所有模型继承自Expando类是否有任何性能缺陷?我知道更多的检查是必要的,以解释一些特质,但我真的只是感兴趣,这是否从根本上是可接受的.

python google-app-engine

0
推荐指数
1
解决办法
323
查看次数

标签 统计

google-app-engine ×1

python ×1