Всем привет, такой вопрос возник, не знаю как правильно организовать все это.
У меня есть модели, DTO и сервисы `user` и `property`:
# model
class User(Base):
__tablename__ = 'user'
id: Mapped[int] = mapped_column(Integer, primary_key=True, index=True)
username: Mapped[str] = mapped_column(String(30), unique=True, index=True)
property: Mapped['Property'] = relationship(back_populates='user')
class Property(Base):
__tablename__ = 'property'
id: Mapped[int] = mapped_column(Integer, primary_key=True, index=True)
points: Mapped[int] = mapped_column(Integer, default=5)
user_id: Mapped[int] = mapped_column(ForeignKey('user.id'), index=True)
user: Mapped['User'] = relationship(back_populates='property')
# DTO
class User(BaseModel):
username: str = Field(min_length=3, max_length=20)
class Property(BaseModel):
points: int = Field(default=5)
# service
def create_user(data: user.User, db: Session):
user = User(username=data.username)
try:
db.add(user)
db.commit()
db.refresh(user)
except Exception as e:
print(e)
return user
def create_property(data: property.Property, db: Session):
property = Property(
points=data.points,
user_id=data.user_id
)
try:
db.add(property)
db.commit()
db.refresh(property)
except Exception as e:
print(e)
return property
Нужно сделать так, что бы после создания `user` происходило создание `property`, которое будет ссылаться на `user`.
Подскажите, как действовать или простой пример наведите)