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]
첫번째의 결과로는 쿼리셋의 형태로 반환되지만 두번째는 리스트 형태로 반환이 된다.
댓글남기기