猿问

是否可以在彼此没有外键关系的对象上进行收集?

我正在使用一个声明性的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属性那样求助于找到会话并手动发出查询?


凤凰求蛊
浏览 164回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答