참조 : https://docs.djangoproject.com/en/5.0/releases/4.0/#localization
위 문서에 보면 Django 5.X이후 버전에서 USE_L10N속성이 deprecated 되어서 Default로 Localized된다고 설명되어 있다.
따라서 settings.py에 DATE_FORMAT, DATETIME_FORMAT를 지정해도 적용이 안된다.
그래서 LANGUAGE_CODE 별로 Default localized format을 customized하는 방법으로 해결할 수 있다.
1. 프로젝트 메인폴더(settings.py파일 있는 폴더) 밑에 아래구조로 빈 파일을 만든다.
project main folder
/formats
/en ← LANGUAGE_CODE 앞 두자리
└ __init__.py
└ formats.py
2. formats.py 수정
DATE_FORMAT = "Y/m/d"
DATETIME_FORMAT = "Y/m/d H:i:s"
해당 en Localization의 Default Format을 지정한다.
3. settings.py 수정
# Internationalization
# https://docs.djangoproject.com/en/5.1/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = False
#USE_L10N = False #deprecated 속성
USE_TZ = False
# https://docs.djangoproject.com/en/5.1/ref/templates/builtins/#date-and-time-formatting-specifiers
# 여기서 지정해도 안먹힌다.
#DATE_FORMAT = 'Y/m/d'
#DATETIME_FORMAT = 'Y/m/d H:i:s'
FORMAT_MODULE_PATH = ["base.formats"] # 추가 (나는 프로젝트 메인폴더가 'base'로 되어 있다.)
settings.py에서 이전에 추가한 모듈경로를 지정하여, global_settings.py의 FORMAT_MODULE_PATH 속성을 override한다.
추가한 구문
FORMAT_MODULE_PATH = ["base.formats"]
이렇게 하면 formats.py에서 지정한 Default Format으로 보여진다.