SQLAlchemy - 经典地图关系

时间:2013-09-15 11:22:56

标签: python python-2.7 python-3.x sqlalchemy

我在使用SQLAlchemy经典映射时遇到了一些麻烦。我的方案如下:

class Manager(object):
    def __init__(self):
       self.id = uuid.uuid4()
       .....

class Client(object):
    def __init__(self):
        self.id = uuid.uuid4()
        self.manager = None

我想要做的是说服SQLAlchemy在Client和Manager(客户端有一个管理员)whiteout之间建立一个必须在客户端级别定义manager id属性的关系。在上面的代码中,'manager'属性将是Manager类的一个实例。我在这种情况下使用经典映射。任何帮助将不胜感激。

mapper(Client, self._table, column_prefix='_', properties={'managed_by_relation':relationship(User, order_by=self._table.c.id, foreign_keys=[self._table.c.manager_id]))

上面的代码描述了我要避免的内容。

1 个答案:

答案 0 :(得分:1)

好像你正在寻找一些自动创建ForeignKey的方法?我写了一篇博客文章,介绍了在这里模拟更“传统”的声明性ORM的一种可能方法:magic, a "new" orm