我想通过引用属性以这种方式获取实体。在
getattr(model, refrence)
其中model是db.Model
,引用是db.ReferenceProperty
。但我得到了一个更友好的错误,我可以通过添加以下类型的导入来避免这个错误。在
其中ReferedKind
是我想在上面得到的实体的类getattr
。在
但我的问题是,由于我想调用它的函数的性质,model
可以属于我的任何模型类。所以我不知道ReferedKind
是什么。在
如何在不导入每个可能的模型类的情况下调用getattr
并获取引用的实体?在
有没有办法可以预先知道ReferanceProperty
引用的实体的类,以便动态导入它?在
其他信息
我正在编写一个函数,它将返回一个json可序列化的python dict数据库()不可json序列化。所以这个函数不知道它需要把什么样的模型放入dict中
通常,在执行任何操作之前,您需要导入所有可以检索的潜在模型。在
你把事情搞砸了。在
你唯一能做的就是在一个比数据库模型或者ndb.型号若要获取原始数据并检查它,则仍需要在取消引用referenceproperty或获取键之前导入模型。在
如果您决定这样做的话,ndm会更容易,因为它没有reference属性,而是KeyProperty,您可以使用getattr,检查是否有一个key,然后获取引用为key的对象。在
如果你想和db在一起。因为您需要使用
get_value_for_datastore
,所以会很混乱这会涉及到
获取实体的类,获取类的属性,然后为传入实例的数据存储调用get_value_,然后假设您已导入,则可以获取密钥。在
因此,如果您有一个名为foo的数据存储实例
然后,您需要从键中获取类型,然后计算出如何导入该类型的模型,在get()键之前,您仍将得到
KindError
我不确定所有的努力是值得的,你会发现它更容易导入模型。您最终需要在使用任何模型之前导入它。您可能获得的唯一好处是延迟导入,这可能会节省一些启动时间。在
相关问题 更多 >
编程相关推荐