상세 컨텐츠

본문 제목

221202 프로젝트 진행 백엔드 오류

카테고리 없음

by hunss 2022. 12. 2. 22:24

본문

 

깃 활용해서 협업하는데 pull이 안되는 오류가 발생했다.

pull을 할 때 깃에서 선택지를 주는데

내 코드랑 pull해올거랑 merge를 할건지, rebase를 할건지 옵션을 줌.

근데 처음봐서 이게 힌트라고 써있었는데 진짜 힌트일줄은 몰랐지..

 

merge와 rebase의 차이를 찾아봤음. main이 있고 main에서 갈라진 a가 있다.

merge는 a브랜치를 main에 병합하면, 커밋로그가 main에 Head로 추가되는데

rebase는 a브랜치를 베이스로 커밋을 재정렬한다. 이런 경우 main의 커밋 트리 중간에 a브랜치의 커밋로그가 추가된다.

=> 엄청난 충돌이 예상되서 해보기 무서움

 


이 오류는 ORM쓰면서 발행했는데, 

serializer에 데이터를 넣을 때 ORM을 get으로 뽑아온 정보를 many=True로 넣어서 오류가 난거 였는 듯싶다.

many=True를 그대로 두고 objects.filter로 하면 오류가 해결되긴 했는데, 의도한 방향과는 다른 orm임.

ORM을 쓸 때 many=True속성을 잘 사용해야 하는걸 다시 한번 느꼈다.


 

models.py에 likes밖에 없는데 view에서 likes_count(좋아요개수)로 정렬을 하고 싶었다.

처음에 주석처리 한 방식으로 하면, likes가 dict으로 response오기 때문에 정렬이 당연히 안됐고

안되는건 아는데 어떻게 수정할지를 몰랐음.

근데 annotate & aggregate 라는 django 기능을 활용했음.

심지어 django에 count함수가 있는지도 처음 알았음.

from django.db.models import Count