Python/Django - *args作为列表
我正在使用.order_by()这个方法,但我想动态地构建排序的字段。问题是.order_by()需要接收一个字符串或者缓冲区。所以,我不能构建一个列表、元组或者对象来传递给这个函数。我该怎么做才能实现这个目标呢?
我想做的事情类似于:
field_list = []
for field in fields:
field_list.append( field )
model.objects.all().order_by( field_list )
???
1 个回答
8
你可以使用 model.objects.all().order_by(*field_list)
这个写法。原因是 order_by
这个方法可以接受多个字符串参数,而不是多个字符串的列表。
你可以查看 djangobook的这一章,搜索 order_by
,还有 这个链接 来了解参数的展开用法。