如何在sqlalchemy中访问自我引用属性?

时间:2014-03-20 12:34:22

标签: python-2.7 sqlalchemy

我对sqlalchemy 0.9很新。在我的模型类中,我创建了自引用完整性。我的代码如下:

model.py:

class Employee(Base):
  __tablename__ = "employee"
  id = Column(Integer, primary_key=True, nullable=False)
  name = Column(String(30), nullable=False)

            manager_id = Column(Integer, ForeignKey("employee.id",
                                          use_alter=True,
                                          name="fk_manager_id",
                                          onupdate="CASCADE",
                                          ondelete="RESTRICT"))


  def __init__(self, name, workstation_id, phone_extension):
    self.name = name
    self.workstation_id = workstation_id
    self.phone_extension = phone_extension

所以manager_id引用id属性。现在问题是如何使用manager_id属性访问Employee类中的name属性管理器名称?

1 个答案:

答案 0 :(得分:1)

您需要使用relationship定义Adjacency List Relationships

class Employee(Base):
    ...
    manager = relationship("Employee", remote_side=[id])

您也可以使用backrefs进行扩展,并根据需要更改路线。有关扩展信息,请参阅上述文档。