我正在使用一个声明性的SQLAlchemy类来执行计算。部分计算要求我对由不同表提供的所有配置执行计算,该表在两个表之间没有任何外键关系。
这种类比与我的实际应用程序完全不同,但希望它将有助于理解我想要发生的事情。
我有一套汽车和油漆颜色清单。汽车对象有一个工厂,可以提供所有可能颜色的汽车
from sqlalchemy import *
from sqlachemy.orm import *
def PaintACar(car, color):
pass
Base = declarative_base()
class Colors(Base):
__table__ = u'colors'
id = Column('id', Integer)
color= Column('color', Unicode)
class Car(Base):
__table__ = u'car'
id = Column('id', Integer)
model = Column('model', Unicode)
# is this somehow possible?
all_color_objects = collection(...)
# I know this is possible, but would like to know if there's another way
@property
def all_colors(self):
s = Session.object_session(self)
return s.query(A).all()
def CarColorFactory(self):
for color in self.all_color_objects:
yield PaintACar(self, color)
我的问题:是否可能以某种方式产生all_color_objects?不必像all_colors属性那样求助于找到会话并手动发出查询?
相关分类