협업을 하다 보면 migration이 꼬일 때가 있다. 그럴 때는 dependencies를 변경해 주든지 파일명을 변경해 주든지 해야 하는데 무엇보다 migration tree를 깔끔하게 관리하는 것이 중요하다. 만약 이미 prod에 배포된 상태라면 migration
initial migrations는 앱의 테이블의 첫 번째 버전을 생성하는 것을 뜻한다. 가끔 복잡한 모델의 경우 2개 이상의 initial migrations를 갖기도 한다.initial migrations는 Migration 클래스 내에 initial = True
Overriding predefined model methods Save 만약 save 할 때마다 다른 어떤 일이 일어나도록 하고 싶은 경우 아래와 같이 overriding을 할 수 있다. 아래와 같이 saving이 일어날 상황을 분기하는 것도 가능하다. 반드시
Middleware Middleware는 장고의 요청/응답 프로세스에 대한 Hook Framework로, 가벼운 low-level의 플러그인 시스템이다. 이를 통해 장고로 들어오는 모든 input과 output을 글로벌 하게 변경하는 것이 가능하며 이 때 각 middl
Q object
이 글은 Django Docs를 읽고 정리한 것입니다. 장고 settings에 들어갈 수 있는 환경변수 중 DATABASE_ROUTERS가 있다. 이 환경 변수에는 마스터 라우터(django.db.router)가 사용해야 하는 라우터의 클래스 명이 리스트로 아래와 같
DJANGO_SETTINGS_MODULE을 이용한다.장고를 사용할 때는 장고에게 어떤 세팅을 이용할 것인지를 알려줘야 한다. 따라서, 환경 변수 DJANGO_SETTINGS_MODULE을 설정해 주어야 한다.이 때, DJANGO_SETTINGS_MODULE는 파이썬 p
이 글은 장고 Docs를 참고해 작성했습니다.앱을 사용하다 보면 여러 사람이 동시에 같은 row를 조회하게 되는 경우가 생길 수 있다. 가령 고객에게 DB에 있는 상품권을 지급하는 경우 여러 유저가 동시에 상품권을 조회하게 된다면 같은 상품권을 조회하게 될 수 있다는
마이그레이션은 version control에 저장되기 때문에 git 처럼 가끔씩 충돌 상황이 발생할 때가 있다.예를 들어, 내가 migration을 A 앱에 생성했는데 다른 개발자도 나와 동시에 A 앱에 migration을 생성했다면 두 migration이 동일한 번호