I have a one to many relationship that returns an error each time I try to call it.
USER Model:
from config import db
from models.mixins import *
from models.decorators import *
import uuid
from sqlalchemy import Column, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from sqlalchemy.dialects import mysql
class User(db.Base):
__tablename__ = 'user'
id = Column(GUID(), primary_key=True, default=uuid.uuid4, unique=True)
name = Column(String(255), nullable=True)
address_to = Column(GUID(), ForeignKey('addess.id'), nullable=True)
address_from = Column(GUID(), ForeignKey('address.id'), nullable=True)
u_address_from = relationship('Address', foreign_keys='address_from',
back_populates='user_address_from')
u_address_to = relationship('Address', foreign_keys='address_to',
back_populates='user_address_to')
Address Model:
from config import db
from models.decorators import *
import uuid
from sqlalchemy import Column, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from sqlalchemy.dialects import mysql
class Address(db.Base):
__tablename__ = 'address'
id = Column(GUID(), primary_key=True, default=uuid.uuid4, unique=True)
street = Column(String(64), nullable=False)
city = Column(String(64), nullable=False)
user_address_from = relationship('Address', foreign_keys='User.address_from',
back_populates='u_address_from')
address_to = relationship('Address', foreign_keys='User.address_to',
back_populates='u_address_to')
Function to get user
class GetUser:
def user(user_id: str):
with db.Session() as session:
user = session.query(User).where(
User.id == user_id,
User.deleted_at.is_(None)
).first()
return user
The error I get is:
[ERROR] InvalidRequestError: When initializing mapper mapped class User->user, expression 'address_from' failed to locate a name ("name 'address_from' is not defined"). If this is a class name, consider adding this relationship() to the <class 'user.User'> class after both dependent classes have been defined.