我有一个正在使用的函数,我需要向它传递一个参数列表,但是,当我试图传递列表时,它会给出一个错误,因为它不能散列。
这里讨论的函数是Django Queryset上的values()方法,但我认为这是一个更一般的python问题。
所以我有:

values_list = ['arg1', 'arg2', 'arg3']
models.MyModel.objects.values(values_list).all()

当我试图运行代码时,这会产生一个错误unhashable type: 'list'
假设我不能更改values方法,那么如何以正常方式将此列表添加到参数列表中?
for arg in values_list:
  queryset = MyModel.objects.values(arg)

最佳答案

您需要使用list unpacking

models.MyModel.objects.values(*values_list).all()

(注意星号)

10-08 13:15
查看更多