나는 장고의 검색어 필터링 특질이 (?) :장고 objects.filter() values_list()
ipdb> MagazineIssue.objects.filter(id__in=l_magazines.values_list('id'))
Out[0]: []
또는
ipdb> MagazineIssue.objects.filter(id__in=[l_magazine.id for l_magazine in l_magazines])
Out[0]: [<MagazineIssue: Architecture Australia, Jan 1995 (#1)>]
및
을ipdb> l_magazines.values_list('id')
Out[0]: [(1,)]
ipdb> [l_magazine.id for l_magazine in l_magazines]
Out[0]: [1]
그래서 values_list()를 사용하는 방법은 무엇입니까? (생산하기 위해) :
[1]
또는 "출발 방법"은 파이썬 목록 이해력입니까?
성능 차이가 있습니까? – Marcin
거대한. values_list는 빠릅니다. flat = true를 사용하면 파이썬이 목록의 모든 객체를 인스턴스화 할 필요가 없기 때문에 데이터베이스 값만 반환됩니다. –
이 명확 해지면 Django는 queryset을 queryset의 인수로 사용한다는 것을 인식하므로 두 쿼리를 하나의 쿼리로 결합합니다. 즉, 'values_list'쿼리 세트를 목록으로 평가하지 않습니다! – Anentropic