Django 모델-고유 한 값 목록 가져 오기
고유 한 외래 키 목록을 얻으려고 노력하고 다음과 같이 썼습니다.
my_ids = Entity.objects.values('foreign_key').distinct()
그러나 나는 UNDISTINCT 외래 키 목록을 얻습니다. 무엇을 놓치고 있습니까?
감사!
그게 힌트입니다! 두 솔루션 모두 100 % 작동하지 않습니다 ...하지만 저는 그것들을 결합했습니다 :)
고유 한 인수를 전달하는 것은 MySQL 데이터베이스 (afaik)에서 작동하지 않습니다.
이것은 작동하고 하나의 객체 만 반환합니다.
Entity.objects.order_by('foreign_key').values('foreign_key').distinct()
어쨌든 감사합니다 :)
아마도 이것과 함께 가고 싶을 것입니다.
Entity.objects.order_by().values_list('foreign_key', flat=True).distinct()
Entity.objects.values_list('foreign_key', flat=True).distinct().order_by()
밖으로 순서대로 작동하지 않는 구별
order_by () 호출에 사용 된 모든 필드는 SQL SELECT 열에 포함됩니다. 이로 인해 distinct ()와 함께 사용하면 예기치 않은 결과가 발생할 수 있습니다. 관련 모델의 필드를 기준으로 정렬하면 해당 필드가 선택한 열에 추가되고 그렇지 않으면 중복 행이 구별되는 것처럼 보일 수 있습니다. 추가 열은 반환 된 결과에 표시되지 않기 때문에 (순서 지정을 지원하기 위해 존재하는 경우 만 있음), 때때로 구별되지 않는 결과가 반환되는 것처럼 보입니다.
마찬가지로 values () 쿼리를 사용하여 선택한 열을 제한하는 경우 order_by () (또는 기본 모델 순서 지정)에 사용 된 열이 계속 관련되며 결과의 고유성에 영향을 미칠 수 있습니다.
여기서 교훈은 distinct ()를 사용하는 경우 관련 모델별로 정렬 할 때주의해야한다는 것입니다. 마찬가지로, distinct () 및 values ()를 함께 사용할 때는 values () 호출이 아닌 필드로 정렬 할 때주의해야합니다.
https://docs.djangoproject.com/en/dev/ref/models/querysets/#distinct
Entity.objects.order_by('foreign_key').distinct('foreign_key')
이미 목록으로있는 경우이를 a로 변환 set()
하여 고유 한 값을 얻습니다.
참조 URL : https://stackoverflow.com/questions/10848809/django-model-get-distinct-value-list
'code' 카테고리의 다른 글
R 하위 집합에 없음 (0) | 2021.01.11 |
---|---|
vlookup 결과에서 # N / A 제거 (0) | 2021.01.11 |
클래스에 대해 스타일이 지정되지 않은 콘텐츠 플래시를 방지하는 AngularJS 전략 (0) | 2021.01.11 |
gpg : 유효한 OpenPGP 데이터가 없습니다. (0) | 2021.01.11 |
지정된 문자열로 두 줄 사이의 Bash, grep (0) | 2021.01.11 |