Skip to main content
 首页 » 编程设计

python之SQLAlchemy之经典 map 关系

2025年05月04日23落叶无声

我在使用 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 在客户端和管理器(客户端有一个管理器)之间创建一种关系,而不必在客户端级别定义一个管理器 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])) 

上面的代码描述了我试图避免的事情。

请您参考如下方法:

您似乎正在寻找某种方法来自动创建外键?我在这里写了一篇关于模拟更“传统”的声明性 ORM 的可能方法的博客文章:magic, a "new" orm