PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso ascoltare la creazione di un modello specifico e crearne uno nuovo (su un tavolo diverso) in base a questo?

Oppure, perché non creare il Referral all'interno dell'User costruttore?

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())