[Python] Using SQLAlchemy relationships while avoiding circular dependency with imports

Discussão em 'Python' iniciado por Stack, Maio 1, 2025.

  1. Stack

    Stack Membro Participativo

    I am having a problem using db.relationships. I noticed that to use relationships in my queries, each models that references another through a relationship has to be aware of that model (through imports as in my example below). All my models are in separate files, so I am afraid I will face circular dependency issues. Can any suggest to me how to overcome this constraints.

    from .models.role import Role

    class User(db.Model, BaseModel):
    __tablename__ = 'user'

    id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=True, nullable=False)
    first_name = db.Column(String(255), nullable=False)
    last_name = db.Column(String(255), nullable=False)
    email = db.Column(String(255), nullable=False)
    role_id = db.Column(UUID(as_uuid=True), db.ForeignKey('role.id'), nullable=False)

    role = db.relationship("Role", back_populates="user")


    from .models.user import User

    class Role(db.Model):
    __tablename__ = 'role'

    id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=True, nullable=False)
    name = db.Column(String(60), nullable=False)
    description = db.Column(String(255), nullable=True)

    users = db.relationship('User', back_populates='role')

    Continue reading...

Compartilhe esta Página