これはおそらく非常に単純ですが、私はそれを行う方法を理解できません。django:リストとしてすべての列を取得
一部の行のすべての列をリストとして取得したいと考えています。私は values_listとフラット=真を使用してすべての列をリストすることができますが、それは 唯一の方法ですか?
rows = FOO.objects.filter(bar='baz')
をし、リストのリストの代わりにFOOオブジェクトのリストを取得する:
は、私はこのような何かをしたいです。
これはおそらく非常に単純ですが、私はそれを行う方法を理解できません。django:リストとしてすべての列を取得
一部の行のすべての列をリストとして取得したいと考えています。私は values_listとフラット=真を使用してすべての列をリストすることができますが、それは 唯一の方法ですか?
rows = FOO.objects.filter(bar='baz')
をし、リストのリストの代わりにFOOオブジェクトのリストを取得する:
は、私はこのような何かをしたいです。
あなたはすべてのフィールドの名前この方法を得ることができます。そうしないと
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で見ることができます:
私は列名を取得する方法を知っている、それは私の問題ではありません。私は明示的にすべての列名を与えることなく、リスト内の行を戻す方法を探しています。 –
応答を – trinchet
パーフェクトに更新しました。ありがとう。私は空のvalues_list()がすべての列を返すことを知らなかった。 –
「あなたは(values_listするために、任意の値を渡さない場合)、それは彼らが宣言された順に、モデル内のすべてのフィールドを返します。」それはあります何が必要なのか明確ではなく、必要なのはフィールド名のリストを取得することだけです。あなたはあなたの質問の予期した結果を投稿してください。 – trinchet
リストのリストを取得したいと思います。トップレベルは各行です。リストのそれぞれでは、各項目は列です。たとえば、行[0] [4]は最初の行の5番目の列になります。 –