2011-08-22 63 views
2

大家下午好,如何在Django中將幾個用戶定義的字段傳遞給order_by()?

我想讓我的一些頁面內容可以由用戶自己排序。我創建了一個用戶友好的表單,提交後我得到了訂購所需的值。

例如(鞋):

ordering_string = "size,-price" 

我寫這個字符串到我的數據庫,使用戶不再需要重新設置這些值。

現在,我應該如何在一個格式像通過這些參數......

shoes = ShoesModel.objects.some_kind_of_filter.order_by('size', '-price') 

是的,我可以通過分割字符串「」,然後讓值的元組,但order_by要求*field_names(不是元組)。

回答

1

Python已經回到了這裏。如果你想傳遞一個元組的函數作爲參數的所有項目,你可以在它前面經過解析成函數有星號*,像這樣:

shoes = ShoesModel.objects.some_kind_of_filter.order_by(*('size', '-price')) 
相關問題