ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Django]StoryIncludedCurationAPI
    Django_BE 2023. 7. 21. 02:02

    스토리가 포함된 큐레이션 리스트를 반환하는 api를 개발한다


    이를 위해, 먼저 Curation의 모델 구조를 파악했다.

    Curation 과 Story는 일대다의 관계이므로

     

    큐레이션이 생성되는 Curation 필드와

    큐레이션과 스토리를 매핑하는 Curation_Story 필드가 있었다

     

    이거 이해하는데 좀 걸렸다


    그 후에는 이미 존재하는 쿼리 구조를 파악하는 시간을 가졌다.

     

    현재 curaiton_id가 주어지면 그에 해당하는 story_detail을 반환하는 CurationStoryDetail Api의 구조를 파악했다

    아래와 같다

    이를 내가 개발해야하는 api에 적용하여 이해한건 아래와 같다


    내가 한 계획: 첫번째 아이디어: curation_story 모델에서 story_id가 일치하는 큐레이션 리스트를 뽑아오자는 아이디어

     

    따라서 일단 curation_story에 있는 모든 데이터를 뽑아보았다

    class StoryIncludedCurationSelector:
        def __init__(self, user:User):
            self.user = user
    
        def list(self):
            curation_list = Curation_Story.objects.all()
    
            return curation_list

    요러코롬

    결과는 이렇게 나옴!

     

    두번째 아이디어: Curation 모델에서 story가 스토리 아이디와 같은 큐레이션을 뽑아낼 수 없을까

     

    일단 두번째부터 시도해보자


     

    "정리"

    Curation_Story 객체에서 story_id에 해당하는 객체들만 뽑아냄(filter을 이용)

     

    values_list()를 이용해서 curation 필드만을 포함하는 리스트로 반환한다

    는 Django 쿼리셋에서 사용하는 메서드로서, 데이터베이스에서 가져온 쿼리 결과를 특정 필드(들)만을 포함하는 값의 리스트로 반환합니다. 이를 통해 쿼리셋에서 특정 필드들만 추출하여 사용할 수 있습니다.

    반환한 리스트에 해당하는 curation 객체들을 가져온다

     


    내 아이디어의 문제점

    아이디어1

    :Curation과 Story의 일대다 관계를 고려하지 않았음

     

    아이디어2

    :Curation_Story에 대해 검색하면 당연히 이 객체가 반환되는데 그걸 잊고 Curation 객체가 반환될것이라 생각함

     


    이번 쿼리 개발을 통해 느낀점

    일대다 관계에 있는 필드 사이에서 필요한 api를 개발하는 것은 다른 스킬이 필요함을 느꼈다

    이건 따로 정리해야할듯

Designed by Tistory.