f-lab-edu / realtor

1 stars 0 forks source link

Property 만들기 #28

Open sanghunjo921 opened 1 year ago

sanghunjo921 commented 1 year ago

현재상황

  1. post request를 통해 property가 만들어질 때 user의 value가 null. 이는 url상 property에 대한 CRUD operations이 user를 통해 날라가지 않기에 url에서 user의 pk를 가져올 수 없어서 생기는 문제
  2. 모델 생성시 field값이 type에 맞게만 작성하면 오류가 없음. 예를들어, property 생성 시 district값에 "ㅇㅇ"를 넣어도 문제없음

목표

post를 통해 property를 만들 때 property를 등록하는 user의 정보에 따라 user field값 설정

post/patch/put request 시 중요 필드의 validation 필요.

AC

f-lab-stephen commented 1 year ago

일단 열려있는 TC 관련 PR 적당히 머지하고, 이 부분 작업하신 것도 PR로 올려주세욥

sanghunjo921 commented 1 year ago

그동안 Property 모델에서 City (서울, 부산 등 유저가 선택) field의 값을 베이스로 District 필드의 선택 가능한 값이 변하게 (서울 선택시 중구, 강남구 / 부산 선택시 해운대 서구 등) 구현하려고 했는데 여러 글들을 읽고 검색도 했는데 마땅한 방법이 생각나지 않네요.

1 : 일단 cityType을 enum 형식으로 만들고 district 타입의 경우 도시별로 enum 타입을 만들어서 district model을 별도로 만들어서 모든 도시별로 district 타입을 넣은 다음에 serializer에서 city에 따라 다른 district type을 call -> 불필요하게 district model에 들어가는 값만 증가할꺼 같아서 보류

2 : city district 모델을 각각 만들고 city 모델은 enum 형식의 cityType을 가져옴. district model의 경우 city의 pk를 가지고 있으며 이를 통해 가져오는 district type이 달라지는 방식 -> 모델에서 validation이 이루어지는게 이상한거 같아서 보류

3 : city district 모델을 각각 만들고 city 모델은 enum 형식의 cityType을 가져옴. district model의 경우 city의 pk를 가짐. serializer에서 city pk 기준으로 validation 진행 -> serializer는 모델 데이터를 직렬화 시키는 역할이기에 validation을 넣어서 직렬화 시키는건 결국 모델에 모든 district 값이 들어가기게 위에랑 같은 문제?

여러가지로 검색하고 해보려고 하는데 하다가 이상해서 다 롤백 시키고 난리났네요..... 혹시 관련된 링크나 검색할 키워드 아시나요? post 리퀘스트 시에 대한 validation은 자료가 많은데 모델의 필드가 다른 필드 기준으로 변동하는 부분은 찾기가 힘드네요

sanghunjo921 commented 1 year ago

회사에서 판매된 상품관리까지 들어가서 약간 바빠서 진행이 느려졌네요. 이번주 공부해야할 내용부터 정리 끝내고 이제 프로젝트 진행하고 있는데 모델부분에서 막히네요.

property와 city 그리고 property와 district는 각각 N:1 관계인거 같은데 (city는 여러개의 매물에 속할 수 있지만 매물은 여러개의 city를 가질 수 없으므로) 그럼 모델을 정의할때 city와 distirct에 property = models.ForeignKey(Property, on_delete=models.CASCADE) 처리를 해야하는것 같습니다.

저번에 멘토링때 property도 city와 district fk를 가지고 있어야 한다고 했었는데 이 경우 어떤식으로 fk를 넣어줘야 할까요?

f-lab-stephen commented 1 year ago

@sanghunjo921