Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:要解包的值太多,将列表作为*args传递_Python_Django Filter - Fatal编程技术网

Python ValueError:要解包的值太多,将列表作为*args传递

Python ValueError:要解包的值太多,将列表作为*args传递,python,django-filter,Python,Django Filter,通过列表将参数传递给Django筛选器时出现问题。这是我的代码: args = [ "Q( title__icontains = 'Foo' ) | Q( author__icontains = 'Foo' )", "Q( title__icontains = 'Bar' ) | Q( author__icontains = 'Bar' )" ] entries = Book.objects.filter( *args ) 但筛选器返回此错误: ValueError:要解压缩的值太多 参数是字

通过列表将参数传递给Django筛选器时出现问题。这是我的代码:

args = [ "Q( title__icontains = 'Foo' ) | Q( author__icontains = 'Foo' )", "Q( title__icontains = 'Bar' ) | Q( author__icontains = 'Bar' )" ]
entries = Book.objects.filter( *args )
但筛选器返回此错误:

ValueError:要解压缩的值太多


参数是字符串,但它们必须是Q对象。删除Q对象定义周围的引号。

您的参数是字符串,但它们必须是Q对象。删除Q对象定义周围的引号。

删除所有引号,您就可以获得正确的结果

args = [ Q( title__icontains = 'Foo' ) | Q( author__icontains = 'Foo' ), Q( title__icontains = 'Bar' ) | Q( author__icontains = 'Bar' )]
entries = Book.objects.filter( *args )

删除所有,你就得到了正确的

args = [ Q( title__icontains = 'Foo' ) | Q( author__icontains = 'Foo' ), Q( title__icontains = 'Bar' ) | Q( author__icontains = 'Bar' )]
entries = Book.objects.filter( *args )

foo和bar查询之间的关系是什么?它们应该是AND还是or?这里有谓词的关系:title\uu icontains='foo'或author\uu icontains='foo'和title\uu icontains='bar'或author\uu icontains='bar'foo和bar查询之间的关系是什么?它们应该是AND还是or?这里有谓词的关系:title\uu icontains='foo'或author\uu icontains='foo'和title\uu icontains='bar'或author\uu icontains='bar'