Django Rest Framework를 사용하며 디버깅한 경험
debug drf django-rest-framework django python
- Swagger와 연동 시
Failed to load API definition
- serializer에서 업데이트 요청 시 id값이 들어오지 않는 현상
- 저장 시 'Manager isn't accessible via * instances' 에러가 발생하는 현상
Swagger와 연동 시Failed to load API definition
- 케이스 1 : 시리얼라이저serializer에서 정확하지 않은 필드명을 입력 시 발생
- 해결방안 :
- 시리얼라이저 내부의 이름이 변경된 필드나 사용되지 않는 필드 변경/제거
- 해결방안 :
serializer에서 업데이트 요청 시 id값이 들어오지 않는 현상
- 현상 설명:
PUT
또는PATCH
를 하여 모델정보를 가지고 올 때id
데이터가 들어있지 않다 - 해결 방안 :
id
항목은 기본적으로read_only
항목이기에id
항목을 시리얼라이저 내부에 한번 더serializers.IntegerField()
로 재정의 해주어야 정상적으로 동작한다
저장 시 'Manager isn't accessible via * instances' 에러가 발생하는 현상
- 현상 설명:
instance.objects.create(...)
시 상위 에러가 발생한다 - 해결 방안:
create
할 시 모델딴이 아닌 인스턴스 딴에서create
를 실행시켜 발생하는 에러.instance.objects.create(...)
가 아닌Model.objects.create(...)
로 호출할 것