我还没有找到解决方案。非常负载编译中的问题(40秒) 我有:
我不明白,这是一个很大的项目,但在开发中我需要加载~100个类。 产品是否存在可以做到这一点,还是我需要创建自定义类映射和自定义工厂?
答案 0 :(得分:0)
为了执行此任务,我只创建具有继承和主键的类。
步骤是:
1)之后我编写了一个函数,它接受一个参数(类名)检查它是否已经加载并创建属性,foreign_keys和relationship,有些想法如class.attrib=Column(String)
2)覆盖定义__new__
以创建类,__getattr__
用于查询,可能需要__setattr__
,我不知道
def __new__(cls,*args,**kwargs):
if cls.__name__ not in sl_loaded_classes: sl_load_function(cls.__name__)
return super(MyCLA,cls).__new__(cls)
def __getattr__(self,attr):
if "MyClass" not in sl_loaded_classes: sl_load_function("NameType")
if False: pass
elif attr=="relation" and "RelatedClass" not in sl_loaded_classes:
sl_load_function("RelatedClass")
for sl_class in gc.get_objects():
if isinstance(sl_class,self.__class__):
config.session.refresh(sl_class)
else: return config.Base.__getattr__(self, attr)
return getattr(self,attr)
现在它工作了,不是完美的(我无法删除对象,在加载相关的类之前),但它正在进行中