TIL-20210204

ORM에서 순서를 유지하는 객체 얻기

user_id_list = [5, 3, 1, 4, 2] 라는 값이 있다고 가정하고

유저의 id가 5,3,1,4,2인 순서로 객체를 얻고 싶을 때

# 원하는 결과가 나오지 않음
user = User.objects.filter(id__in=user_id_list)

쿼리셋의 결과로 1,2,3,4,5의 정렬된 유저가 반환된다. 해당 리스트의 순서를 유지하며 값을 얻고 싶을땐 ORM을 사용하지 않고 파이썬을 이용하여 값을 얻을 수 있다.

user = [User.objects.get(id=user_id) for in user_id_list]

첫번째의 결과로는 쿼리셋의 형태로 반환되지만 두번째는 리스트 형태로 반환이 된다.

태그:

카테고리:

업데이트:

댓글남기기