Django 프로젝트 진행: DRF를 활용한 e-commerce API 구축
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
Django 및 Django REST Framework(DRF)를 사용한 웹 API 개발에 관심 있는 개발자. 중급 이상의 Django 경험을 가진 개발자에게 유용하며, 마이그레이션 문제 해결 방법을 학습하고자 하는 경우에도 적합.
핵심 요약
- Category 모델 생성 및 Product 모델에 외래키 필드 추가하여 관계 정의
- DRF Serializer를 통해 Category와 Product의 중첩된 데이터 구조를 API로 노출
- 데이터베이스 마이그레이션 과정에서 기존 Product 데이터와 Category 데이터 불일치 문제 해결
섹션별 세부 요약
1. 모델 정의 및 마이그레이션
- Category 모델 생성 후
makemigrations
명령 실행 - Product 모델에
category = models.ForeignKey(Category)
필드 추가 - 기존 Product 데이터와 Category 데이터 불일치로 인한 마이그레이션 오류 발생
2. Serializer 구현
- CategorySerializer에
get_product_count
메서드 추가하여 카테고리별 상품 수 계산 - ProductSerializer에서
CategorySerializer
중첩 구조로 카테고리 정보 노출
3. API 및 Django Admin 설정
- Category CRUD API 구현 및 Django Admin에서 Product/Category 모델 등록
createsuperuser
명령으로 관리자 계정 생성 후 Django Admin 인터페이스 사용
4. 마이그레이션 문제 해결
- 기존 마이그레이션 파일 삭제 후
category
외래키 필드 임시 주석 처리 - Shell 명령어를 통해 Category 데이터 직접 삽입
- 외래키 필드 복원 후 마이그레이션 재실행 시 기존 Product 데이터에 대한
category
필드 기본값 설정
결론
- 마이그레이션 오류 해결 시 기존 마이그레이션 파일 삭제 및 Shell 명령어를 통한 데이터 삽입을 우선 고려
- Django Admin에서 모델 관리 및 Serializer 중첩 구조는 API 개발 시 필수적인 단계
- 다음 단계로 사용자 인증(User Authentication) 구현 예정