2011-01-24 5 views
12

Django에 쿼리의 결과를 좀 더 '쓸모있는'형식으로 반환하는 유용한 헬퍼가 있는지 궁금 해서요. 그래서 내 견해에서 반복 할 필요가 없습니다.Django - 'associative'dict로 쿼리 결과?

self.filter(key__in=keys).values('key','value') 

은 내가 결국 원하는 것은

{'some_key':'some value', 'some_other_key':'some_other_value'} 

처럼 그래서 내 모델에서이 같은 뭔가를 할 수 보이는 객체입니다 :

나는이 같은 쿼리를

settings = Setting.objects.get_keys(['some_setting','some_other_setting']) 
print settings.some_setting # returns 'some value' 

여기서 'get_keys'는 위의 필터 쿼리를 실행하는 관리자 기능입니다. 내가 어떻게 이럴 수 있니? 나중에 설정을 저장할 수 있기 때문에 설정 관리자에서 결과를 반복하는 것에 반대하지 않을 것입니다 ... 나는 '글로벌'모델 변수를 만드는 방법을 생각할 수 없습니다.

도움이 될 것입니다.

답변

27

당신이 values_list보다는 values 사용하는 경우는 사전에 만들 수는 다음 dict()에 전달할 수있는 두 개의 튜플의 집합을 반환합니다

return dict(self.filter(key__in=keys).values_list('key','value'))