Django REST Framework/DRF 일반

[DRF] PostgreSQL에서 order_by로 한글 정렬 하기

bluebamus 2024. 1. 26. 01:04

- default로 만들어주는 데이터베이스의 collate가 en_US.UTF-8이기 때문에 발생하는 현상이다.

 

from django.db.models import Func

ko_kr = Func(
    "field_name",
    function="ko_KR.utf8",
    template='(%(expressions)s) COLLATE "%(function)s"'
)
Foo.objects.all().order_by(ko_kr.asc()) # 오름차순
Foo.objects.all().order_by(ko_kr.desc()) # 내림차순

 

   - field_name : 정렬할 칼럼 명 정의

   - template에서 "%(function)s"에 사용되는 따옴표는 항상 큰따옴표여야 한다.

 

 - reference : 

https://velog.io/@92sursumcorda/Django-%EB%8D%94-%EC%9E%98-%EC%93%B8-%EC%88%98-%EC%9E%88%EB%8A%94-%EB%AA%87%EA%B0%80%EC%A7%80-%ED%8C%81

 

Django 더 잘 쓸 수 있는 몇가지 팁

11개월을 다닌 회사를 퇴사하고 그동안 멈췄던 블로그를 다시 시작합니다 :-)아마 장고를 사용 중인 많은 분이 RDS에 PostgreSQL를 올려서 같이 사용 중인 거로 알고 있습니다. 그런데 장고 ORM 중 order

velog.io