2012-01-25 4 views
2

개체 목록 대신 장고 모델에서 쿼리하는 동안 사전을 가져올 수 있습니까? 예를 들어 는 :모델 쿼리에서 사전 얻기

ids = [1, 2, 3, 4, 5] 
objs = someModel.objects.filter(pk__in = ids) 

그것은 나에게 객체의 목록을 반환합니다. 내가 원한다면 어떻게 든 될 수있다. 기본 키를 가진 객체 사전을 키로하고 싶다.

objs = {1: query_object, 2: quer_object, 3: quer_object, 4: quer_object, 5: quer_object} 

답변

-1
objs = dict([(obj.pk, obj) for obj in objs]) 
+0

어떻게 개체의 기본 키를 얻는 방법 내 머리 위로 떨어져 기억 할 수 없습니다, 그래서' obj.pk' 부분이 약간 잘못되었을 수 있습니다. 그렇다면 수정하십시오. – Peter

+0

응답을 주셔서 감사합니다, 나는 거기에 장고에있는 동일한 방법을하지 않으면 생각하고 있었지 ?? –

+0

나는 그렇게 생각하지 않는다. 그것은 일반적인 의미에서 어떤 용도로 사용 되는가? 그것은 자신을하기가 어렵지 않다. – Peter

-1

당신은 수동으로를 만들기 위해 지능형리스트를 사용할 수 있습니다

dict([(obj.pk, obj) for obj in objs]) 
1

당신은 또한이 같은 "in_bulk"방법에 ValuesListQuerySet 객체를 넣어 시도 할 수 있습니다 :

someModel_query = someModel.objects.values_list('pk', flat=True) 
someModel.objects.in_bulk(someModel_query) 
관련 문제