2011-01-24 58 views
12

我想知道在Django中是否有任何方便的助手會將查詢的結果返回到更「通用」的格式,因此我不必在我的視圖中遍歷它們。Django - 查詢結果爲'關聯'字典?

我有這樣的查詢:

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'))