일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 쓰릴오브파이트
- 뭐든
- Problem Solving
- 개발자
- realclass
- 잡생각
- 만화도
- 읽기
- 매일
- 3줄정리
- 프로젝트
- 화상영어
- FIT XR
- Writing
- 운동
- 10분
- 영어원서읽기
- English
- 파비최
- 링피트
- 영어공부
- 리얼 클래스
- 월간
- 스탭퍼
- Daily Challenge
- leetcode
- 미드시청
- 사이드
- 30분
- 괜찮음
- Today
- Total
파비의 매일매일 공부기록
parent_lookup_% 관련 삽질 후기 본문
하..... 오늘 반나절을 이거 때문에 삽질 ㅠㅠ
일단 배경에 대해 설명하자면
django-rest-framework(DRF)를 사용하고 있으며
pk를 받지 않고 post method를 데이터 '초기화' 용으로 사용하려고 하는 상황이었다.
그런데 url path가 /abcd와 같은 형태가 아니고
/abcd/:id/efgh/:another_id/reset의 형태로 호출을 해야 했다.
만약 단순 /abcd와 같은 형태였다면 이런 삽질을 할 이유가 없었지만
모종의 이유로 /abcd/:id/efgh/:another_id/reset를 유지해야 했다.
그래서 데코레이터를 활용해서
@action(detail=False, method=['post'])
def reset(self, request):
형태로 사용을 했다.
근데 계에에에에에속 오류가 나서 구글링도 해보고
detail=True로 바꿔서 구현도 시도해보고(이건 PK 가 있어야 돼서 애초에 불가)
삽질에 삽질에 삽질을 더해서
결국 그냥 단순 /abcd랑 비슷한 형태로 구현할까...? 하던 중에
같은 프로젝트를 하는 동료가 최근 짜 놓은 소스를 참고해서
비슷하게 따라 해 보니(별 관련도 없는 Serializer도 넣어보고)
어..?....... 네? 이게 왜 됨?
그래서 Serializer도 제거해서 해보니 문제없이 됨..
내가 놓쳤던 건
def reset(self, request): => def reset(self, request, *args, **kwargs): 로 변경해야 하는 거였다.
어쩐지.. 계속 에러 메시지 나오는 게 kwargs에 있는 parent_lookup_% 관련이었는데 ㅠㅠ
배경 지식이 없으니 이렇게..... 삽을 푸는구먼 ㅠㅠ
그래도 덕분에 진짜 힘들게 데코레이터, 라우터에 대해서 찾아보고
기존 소스에 대해서도 꽤 많이 파악이 됐다.
삽질에 시간을 쓴 덕에 오늘 구현하기로 한 task까지는 못 갔지만
그래도 비슷한 이슈가 생기면, 이제는 1~2분 안에 해결이 가능하니
뭐.. 다.. 다행인가? ㅋㅋㅋㅋㅋㅋㅋ
여하튼 오랜만에 삽질(이라고 쓰고 트러블슈팅이라고 읽는) 끝에 해결해서 기부니가 좋다.
'Trouble Shooting > From workplace' 카테고리의 다른 글
HTML/CSS - position, display 속성에 대하여 (0) | 2021.10.06 |
---|---|
DRF pagination에 대해 (0) | 2021.07.28 |
iBatis - DB Connection Hang이 자꾸 발생해요(defaultStatementTimeout 설정) (2) | 2021.01.13 |
Oracle - 데이터가 너무 많아서 조회속도가 느려요. (0) | 2021.01.05 |
Apache Tomcat - 특정 페이지에서 개발과 운영 웹 서버 동작이 달라요. (0) | 2021.01.04 |