2016-05-19 8 views
0

これはおそらく非常に単純ですが、私はそれを行う方法を理解できません。django:リストとしてすべての列を取得

一部の行のすべての列をリストとして取得したいと考えています。私は values_listとフラット=真を使用してすべての列をリストすることができますが、それは 唯一の方法ですか?

rows = FOO.objects.filter(bar='baz') 

をし、リストのリストの代わりにFOOオブジェクトのリストを取得する:

は、私はこのような何かをしたいです。

+0

「あなたは(values_listするために、任意の値を渡さない場合)、それは彼らが宣言された順に、モデル内のすべてのフィールドを返します。」それはあります何が必要なのか明確ではなく、必要なのはフィールド名のリストを取得することだけです。あなたはあなたの質問の予期した結果を投稿してください。 – trinchet

+0

リストのリストを取得したいと思います。トップレベルは各行です。リストのそれぞれでは、各項目は列です。たとえば、行[0] [4]は最初の行の5番目の列になります。 –

答えて

1

あなたはすべてのフィールドの名前この方法を得ることができます。そうしないと

FOO.objects.filter(<your filter>).values_list(* FOO._meta.get_all_field_names(), flat=True) 

:ので、あなたのような何かを行うことができます

model._meta.get_all_field_names() 

または

[field.name for field in model._meta.get_fields()] for `Django >= 1.9` 

をフィールド名を渡したい場合は、

FOO.objects.values_list() 

あなたはreferenceで見ることができます:

+0

私は列名を取得する方法を知っている、それは私の問題ではありません。私は明示的にすべての列名を与えることなく、リスト内の行を戻す方法を探しています。 –

+0

応答を – trinchet

+0

パーフェクトに更新しました。ありがとう。私は空のvalues_list()がすべての列を返すことを知らなかった。 –

関連する問題