SQLAlchemy一对一关系,主要是外键

 紫褚1314 发布于 2023-01-07 10:39

我将类映射到Drupal生成的现有MySQL表.我需要与表格(一对一)联系,但我遇到了问题.两个表的列nid.这两个字段都是主键.没有主键我无法定义外键.关系图不适用于主键.我的版本如下.

class Node(Base):
    __tablename__ = 'node'
    nid = Column(Integer, primary_key=True)
    vid = Column(Integer)
    uuid = Column(String(128))
    type = Column(String)

    field_data = relationship("NodeFieldData", order_by="NodeFieldData.nid", backref="node")

    def __repr__(self):
        return "" % (self.nid, self.vid, self.uuid, self.type)

class NodeFieldData(Base):
    __tablename__ = 'node_field_data'
    nid = Column(Integer, primary_key=True)
    type = Column(String, nullable=False)
    title = Column(String, nullable=False)
    #nid = Column(Integer, ForeignKey('Node.nid'))

    def __repr__(self):
        return "" % (self.nid, self.vid, self.uuid, self.type)

谢谢.

1 个回答
  • 根据评论:

    nid = Column(Integer, ForeignKey(Node.nid), primary_key=True)
    

    整个解决方案是:

    Base = declarative_base()
    class Node(Base):
        __tablename__ = 'node'
        nid = Column(Integer, primary_key=True)
        uuid = Column(String(128))
        vid = Column(Integer)
        type = Column(String)
    
        # Refferer.
        field_data = relationship('NodeFieldData', backref="node", uselist=False)
    
        def __repr__(self):
            return "<Node(nid='%s', uuid='%s', vid='%s', type='%s', title='%s')>" % (self.nid, self.uuid, self.vid, self.type, self.field_data.title)
    
    class NodeFieldData(Base):
        __tablename__ = 'node_field_data'
        nid = Column(Integer, ForeignKey(Node.nid), primary_key=True)
        #vid = Column(Integer, primary_key=True)
        title = Column(String, nullable=False)
    
        def __repr__(self):
            return "<Node(nid='%s', title='%s')>" % (self.nid, self.title)
    

    2023-01-07 10:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有