我有一个正在使用的函数,我需要向它传递一个参数列表,但是,当我试图传递列表时,它会给出一个错误,因为它不能散列。
这里讨论的函数是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()
(注意星号)