django로 개발할 때, 테스트 데이터가 필요할 때가 있습니다.
이 때 손수 하나하나 넣어주는 건 시간적으로 매우 비효율적이죠.
그럴 때 쓸 수 있는 테스트 데이터 자동 생성 라이브러리!
django-seed를 소개합니다~!
Django-seed 사용 방법
1. 터미널에서 django-seed 설치하기
pip install django-seed
2. psycopg2도 함께 설치하기
pip install psycopg2
- django-seed만 설치하고 테스트 데이터 생성을 시도하면, 아래와 같은 에러가 발생
3. settings.py의 INSTALLED_APPS에 등록하기
# settings.py
INSTALLED_APPS = [
...,
'django_seed',
...,
]
4. 테스트 데이터 만들기
python manage.py seed --number [테스트 데이터 개수] [앱 이름]
- 예시
5. 생성된 데이터 확인
에러 발생 시 해결 방법
seed를 만드는 명령어를 실행했더니, 아래 에러가 나신 분이 계신가요?
이 에러는 모델에 "DateTime 필드"가 있을 때 발생할텐데요,
시간대(Timezone)를 처리하는 과정에서 문제가 발생한 것입니다.
이를 해결하기 위해서는,
아래와 같이 settings.py에서 USE_TZ = False 설정을 해 주시면 됩니다.
# settings.py
# ...
USE_TZ = False
# ...
USE_TZ = True는 시간대 지원을 활성화하는 설정입니다.
반면, USE_TZ = False로 설정하면 Django는 시간대를 고려하지 않고 데이터를 처리합니다.
즉, 현지 시간(local time)을 그대로 데이터베이스에 저장하고 반환합니다.
이게 어떻게 문제를 해결했냐구요?
USE_TZ = True일 때 Django는 시간 데이터를 UTC로 변환하여 저장하려고 했고, 그 과정에서
is_dst 인자와 같은 시간대 정보와 관련된 문제가 발생했습니다.
하지만 USE_TZ = False로 설정함으로써, Django는 시간대 변환을 하지 않고, 현지 시간을 그대로 사용하게 되어
시간대 관련 처리가 불필요하게 된 것입니다.
'Study > Django' 카테고리의 다른 글
[Django] REST API를 이용하여 게시판 기능 구현하기 (with Postman) (4) | 2024.10.23 |
---|---|
[Django] Django에서 올바르게 404 not found 에러 응답하기 (1) | 2024.10.17 |
[Django] Django로 CRUD를 구현해보자 (2) | 2024.09.28 |
[Django] Django에서 이미지 파일 업로드 및 제공, 수정 기능 추가하기 (0) | 2024.09.28 |