[yeonpil] fastapi relationship

‍서산·2022년 11월 18일
0
<models.py>

from database import Base
from sqlalchemy import Column, Integer, Float, String, ForeignKey, DateTime
from sqlalchemy.orm import relationship
import datetime

class User(Base):
    __tablename__ = "user"

    id = Column(Integer, primary_key=True, index=True)
    user_name = Column(String(32))
    user_email = Column(String(32))
    memos = relationship("Memo", back_populates="writer")      

class Point(Base):
    
    __tablename__ = 'point'

    id = Column(Integer, primary_key=True, index=True)
    postal_code = Column(String(32))
    memos = relationship("Memo", back_populates="postbox")

class Memo(Base):
    
    __tablename__ = 'memo'

    id = Column(Integer, primary_key=True, index=True)
    user_id = Column(Integer, ForeignKey("user.id"))
    point_id = Column(Integer, ForeignKey("point.id"))
    memo_type = Column(Integer) #0:public 1:private
    memo_content = Column(String(32))
    created_at = Column(DateTime, default=datetime.datetime.utcnow)

    writer = relationship("User", back_populates="memos")
    postbox = relationship("Point", back_populates="memos")
<schemas.py>

from typing import List
import datetime
from pydantic import BaseModel

class Memo(BaseModel):

    user_id : int
    point_id : int
    memo_type : int
    memo_content : str
    created_at : datetime.datetime    
    class Config:
        orm_mode = True
        
class User(BaseModel):

    user_name : str
    user_email : str

    memos : List[Memo] = []
    class Config:
        orm_mode = True

class Point(BaseModel):

    postal_code : str

    memos : List[Memo] = []
    class Config:
        orm_mode = True
        

0개의 댓글