장고

2014-12-04 1 views
0
에서의 검색어에서 목록을 얻으려면 어떻게

다음 장고 코드장고

phonenumbers = othermodel.objects.filter(company=mymodel.company, 
             date_overwritten__isnull=True 
             ).values_list('id', flat=True) 

이 대신 파이썬 목록의 다른 검색어 세트 객체를 반환을 고려, 반환의 검색어의 첫 번째 목적은 {valuesListQuerySet}이다 내 전체 모델/테이블 othermodel이 현재 비어 있기 때문에 이것은 빈 목록입니다.

내가 무엇이 누락 되었습니까? 어떻게 내가 어떻게해야합니까 그냥 일반 파이썬 목록으로 {valuesListQuerySet} 경우에도 그 빈

+0

https://docs.djangoproject.com/en/dev/ref/models/querysets/#when-querysets-are-evaluated –

+0

왜 필요합니까 목록으로, 구체적으로? 관용적 인 Python 작성법의 일부는 오리 타이핑에 의존하는 것입니다. 쿼리 세트는 거의 모든 목록 기능을 지원합니다. 경우에 따라 명시 적으로 변환해야하지만 분명히 당연한 것은 아닙니다. –

+0

다른 쿼리 newquery.message_set.exclude (originator = phonenumbers)에서 결과를 사용하고 있는데 newquery가 phonenumbers 쿼리를 상속하고 추가하지만 연결을 보면 SELECT U0. "originator"가 있습니다. U0은 시스템 생성 된 것으로 보이며 모든 것을 엉망으로 만듭니다. –

답변

2

로서 django doc says

당신이) (values_list 어떤 값을 전달하지 않으면 반환 할 모든 필드가 선언 된 순서대로 모델에 있습니다.

이 메서드는 ValuesListQuerySet을 반환합니다. 이 클래스는 과 같은 역할을합니다. 대부분의 경우이 정도면 충분하지만 실제 파이썬리스트 객체가 필요하다면 list()를 호출하면된다. 은 queryset을 평가할 것이다.

그래서 당신은 호출 할 수

list(phonenumbers)