Python ValueError:要解包的值太多,将列表作为*args传递
通过列表将参数传递给Django筛选器时出现问题。这是我的代码: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:要解压缩的值太多 参数是字
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'