django) values, values_list, flat

junghoyoon·2022년 4월 26일
0
post-thumbnail

values, values_list, flat

django 환경에서 ORM을 이용해 맵핑 된 객체의 값을 가져올 때 다양한 방법이 있다.

그 중 가장 편리하게 사용 되는 2가지 + a 를 알아보자.

values

values는 object의 특정 칼럼에 대한 값을 key, value 딕셔너리 형태로 각 각 칼럼 정보와 해당 칼럼의 값을 반환한다.

>>> Model.objects.values('column')
[{'column':'value'},...]

values_list

values_list는 values와 다르게 딕셔너리가 아닌 조회 칼럼의 값만을 포함하는 튜플로서 조회 결과를 반환한다.

>>> Model.objects.values('column1','column2')
[('column1_value','column2_value'),...]

values_list(flat=True)

values_list를 사용할 때에 flat 속성에 True 인수를 주게 되면 반환 결과에 대해서 리스트로 값을 반환한다.

주의할 점은 하나의 필드를 조회 할 때만 사용 가능 하다는 것이다.

values_list 와 values의 경우 고차원 형태의 배열을 이루고 있기 때문에 심플하게 사용하기 어려울 때가 있는데 이럴 때 flat 속성을 사용하여 원하는 데이터만 사용하기 쉬운 형태로 가져올 수 있다.

>>> Model.objects.all().values_list('column1',flat=True)
[1,2,3,4,...]
profile
식욕, 수면욕, 성욕 만땅

0개의 댓글