참조 : 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으로 보여진다.