Python / Django - * args作为列表

时间:2011-06-23 14:54:53

标签: python django django-models

我正在使用.order_by()方法/函数;但是,我想动态构造order_by字段。问题是.order_by()期望接收字符串或缓冲区。所以,我无法构建一个列表或元组或对象来发送到该函数。我怎样才能实现这个目标?

我想做类似的事情:

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

???

1 个答案:

答案 0 :(得分:8)

您可以使用model.objects.all().order_by(*field_list);这是因为order_by接受多个字符串参数,而不是多个字符串的列表。

请参阅This chapter in djangobook, search for order_bythis了解参数解包。