테이블의 데이터 를 조회할 때 특정 칼럼 값 만을 중복 없이 가져와야 하는 경우가 있다.

 

quick_tests = TpQuickTest.objects.all().order_by('user_id')
quick_tests_users = quick_tests.values_list('user_id', flat=True).distinct()

 

TpQuickTest 테이블의 user_id 칼럼의 값들을 중복 없이 가져오는 리스트를 만드는 코드이다.

 

* 참고

쿼리셋.value('칼럼 명'): 해당 칼럼의 값들을 딕셔너리로 조회

쿼리셋.value_list('칼럼 명'): 해당 칼럼의 값들을 튜플로 조회

쿼리셋.value_list('칼럼 명', flat=True): 해당 칼럼의 값들을 리스트로 조회

 

.distinct()는 order_by가 적용된 칼럼에 한해서만 적용됨을 유의하자

 

References

https://velog.io/@paori/django-%EC%BF%BC%EB%A6%AC%EC%85%8B-%EC%A4%91%EB%B3%B5%EC%A0%9C%EA%B1%B0-distinct-%EC%95%88%EB%90%A8

'Django' 카테고리의 다른 글

Django __str__  (0) 2021.08.30
Django 쿼리문 F() 사용하기  (0) 2021.08.04
Django select_related / prefetch_related  (0) 2021.07.14
Django query/url parameter  (0) 2021.07.13
Django 세팅하기  (0) 2021.07.11

+ Recent posts