如何在Django中将几个用户定义的字段传递给order_by()?

时间:2011-08-22 11:40:16

标签: django model

下午好,

我想让部分页面内容可供用户自行排序。我创建了一个用户友好的表单,提交后我获得了订购所需的值。

例如(鞋子):

ordering_string = "size,-price"

我将此字符串写入数据库,以便用户不再需要再次设置这些值。

现在,我应该如何以......格式传递这些参数。

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

是的,我可以用','分割字符串,然后创建一个值元组,但order_by需要*field_names(不是元组)。

1 个答案:

答案 0 :(得分:2)

Python让你回到这里。如果要将元组中的所有项目作为参数传递给函数,可以将元组传递给前面带有星号*的函数,如下所示:

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