sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo escuchar la creación de un modelo específico y crear uno nuevo (en una tabla diferente) basado en esto?

O por qué no crear la Referral dentro del User constructor?

from sqlalchemy.orm import Session, relationship, Mapper
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, ForeignKey, create_engine, event


Base = declarative_base()


class User(Base):
    __tablename__ = 'user'

    def __init__(self):
        self.referral = Referral()

    id = Column(Integer(), primary_key=True)    
    referral = relationship('Referral', uselist=False)


class Referral(Base):
    __tablename__ = 'referral'
    id = Column(Integer(), primary_key=True)
    user_id = Column(Integer(), ForeignKey('user.id'), nullable=False)


engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
session = Session(bind=engine)

session.add(User())
session.commit()

print(session.query(User).all())
print(session.query(Referral).all())