2012-01-25 11 views
2

オブジェクトのリストの代わりにDjangoモデルでクエリを実行しているときに辞書を取得できますか?たとえば :モデルクエリから辞書を取得する

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) 
関連する問題