Django QuerySets를 루프에 연결하는 것이 올바른 일을하고 있습니까?

StackOverflow https://stackoverflow.com/questions/1240210

  •  11-09-2019
  •  | 
  •  

문제

항목 모음 (CollectionItem)을 나타내는 Collection이라는 Django 모델이 있습니다. 각 컬렉션에는 특정 유형의 항목 만 포함됩니다. (CollectionItem은 외국의 컬렉션을 가지고 있습니다).

특정 유형의 공개 플래그 목록에있는 모든 수집품을 얻고 특정 필드로 정렬 한 반환을 원합니다. 내가 사용하는 쿼리 코드는 다음과 같습니다.

lists = Collection.objects.filter(is_public=True, type=7)
items = CollectionItem.objects.none()
for list in lists:
    items |= CollectionItem.objects.filter(collection=list)
items = items.order_by('name')

수많은 목록과 항목이있는 큰 데이터베이스가있을 때 이것이 전혀 확장되지 않을 것이라고 상상해야합니다. Django에서 더 좋은 방법이 있습니까? 아니면 쿼리 루프와 관련된 비 효율성이 너무 걱정하지 말아야 할 다른 옵션에 비해 무시할 수 있습니까?

도움이 되었습니까?

해결책

필요한 것 같네요 :

items = CollectionItem.objects.filter(
                    collection__is_public=True, collection__type=7
               ).order_by('name')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top