下午好,首先,我使用的是Python 3.11.3 FastAPI和SQLAlchemy。 当两个模型有关系时,我一直试图将这两个模型分开,但是一旦我将这些模型分离到不同的文件中,即使我导入引用该模型的表,我也会收到错误。 有没有办法将这两个模型分开并保持它们之间的关系? 这将非常有帮助,谢谢。
例如,这是我的代码,我想将这两个类分成不同的文件以保持关系 ->
类 ToPersona(Base): 表名 = 'to_persona'
id_persona = Column(Integer, primary_key=True, index=True)
fc_nombre = Column(String(50), nullable=False)
ToUsuario 类(基础): 表名 = 'to_usuario'
id_usuario = Column(Integer, primary_key=True, index=True)
fk_id_persona = Column(ForeignKey('to_persona.id_persona'))
to007_persona = relationship('ToPersona')
您可以将两个模型分离到不同的文件中,同时保持关系。这是一个示例结构:
to_persona.py
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class ToPersona(Base):
__tablename__ = 'to_persona'
id_persona = Column(Integer, primary_key=True, index=True)
fc_nombre = Column(String(50), nullable=False)
to_usuario.py:
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.orm import relationship
from .to_persona import ToPersona
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class ToUsuario(Base):
__tablename__ = 'to_usuario'
id_usuario = Column(Integer, primary_key=True, index=True)
fk_id_persona = Column(ForeignKey('to_persona.id_persona'))
to007_persona = relationship(ToPersona)
确保两个文件(
to_persona.py
和 to_usuario.py
)位于同一目录中或者可以相互导入。通过从 ToPersona
文件中的 to_persona.py
导入 to_usuario.py
类来维护关系。这样,当您定义关系时,它使用在其他文件中定义的相同类。
确保根据您的项目设置调整导入和文件结构。