2011-06-23 5 views
4

私は.order_by()メソッド/関数を使用しています。しかし、私は動的にorder_byフィールドを構築したいと思います。問題は.order_by()が文字列またはバッファを受け取ることを期待していることです。したがって、関数に送るリストまたはタプルまたはオブジェクトを構築することはできません。この目標を達成するにはどうしたらいいですか?Python/Django - * args as list

私のような何かやってみたかった:

field_list = [] 
for field in fields: 
    field_list.append(field) 
model.objects.all().order_by(field_list) 

を???

答えて

8

model.objects.all().order_by(*field_list)を使用できます。これは、order_byが複数の文字列引数を受け付け、複数の文字列のリストを受け付けないためです。

引数のアンパックについては、This chapter in djangobook, search for order_byおよびthisを参照してください。

+0

ああ!とても良い。好奇心のために、これに関する文書がどこにあるのか知っていますか?それは私と他の人を助けるでしょう:) – GregL83

+0

@ GregL83修正応答 –

+0

甘い。再度、感謝します。まさに私が探していたもの。 – GregL83