python lxml 在将 kwargs 作为 dict 处理时抛出键错误 bool
python lxml throwing key error bool while processing kwargs as dict
我正在尝试使用以下代码片段链接 Django Q() 对象:
excludes = None
for val in service_dict.values():
field_filter_name = field_name.format(val)
exclude_filter = {field_filter_name + "__isnull": True}
if excludes is None:
excludes = Q(**exclude_filter)
else:
excludes |= Q(**exclude_filter)
在 运行 时间,当代码在第一个循环中命中 excludes = Q(**exclude_filter)
行时,抛出此错误:
File "/lib/python3.6/site-packages/lxml/builder.py", line 218, in call
get(dict)(elem, attrib)
File "/lib/python3.6/site-packages/lxml/builder.py", line 205, in add_dict
attrib[k] = typemap[type(v)](None, v)
KeyError: <class 'bool'>
我很确定这些值是字符串类型。
但这是在相同环境中的 python shell 上工作的:
In [9]: Q(**{"foo__isnull": True})
Out[9]: <Q: (AND: ('foo__isnull', True))>
环境外我也试过:
>>> a = {'foo': True}
>>> def k(foo):
... print(foo)
...
>>> k(**a)
True
另一方面; kwargs 的这种用法在代码的任何其他部分都有效。
如何解决这个问题?
编辑:
完整追溯:
Traceback (most recent call last):
File "/env/lib/python3.6/site-packages/django/contrib/staticfiles/handlers.py", line 63, in __call__
return self.application(environ, start_response)
File "/env/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 170, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in get_response
response = self._middleware_chain(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/env/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/project/foobar/products/views.py", line 1267, in product_list_view
filters, excludes = apply_filters(request)
File "/project/foobar/products/views.py", line 1085, in apply_filters
excludes = Q(**exclude_filter)
File "/env/lib/python3.6/site-packages/lxml/builder.py", line 218, in __call__
get(dict)(elem, attrib)
File "/env/lib/python3.6/site-packages/lxml/builder.py", line 205, in add_dict
attrib[k] = typemap[type(v)](None, v)
KeyError: <class 'bool'>
推测您已经实例化了一个 lxml 对象并在您的代码前面调用了它 Q
,这将覆盖您从 django.db.models 导入的 Q 对象。重命名对象。
我正在尝试使用以下代码片段链接 Django Q() 对象:
excludes = None
for val in service_dict.values():
field_filter_name = field_name.format(val)
exclude_filter = {field_filter_name + "__isnull": True}
if excludes is None:
excludes = Q(**exclude_filter)
else:
excludes |= Q(**exclude_filter)
在 运行 时间,当代码在第一个循环中命中 excludes = Q(**exclude_filter)
行时,抛出此错误:
File "/lib/python3.6/site-packages/lxml/builder.py", line 218, in call
get(dict)(elem, attrib)
File "/lib/python3.6/site-packages/lxml/builder.py", line 205, in add_dict
attrib[k] = typemap[type(v)](None, v)
KeyError: <class 'bool'>
我很确定这些值是字符串类型。 但这是在相同环境中的 python shell 上工作的:
In [9]: Q(**{"foo__isnull": True})
Out[9]: <Q: (AND: ('foo__isnull', True))>
环境外我也试过:
>>> a = {'foo': True}
>>> def k(foo):
... print(foo)
...
>>> k(**a)
True
另一方面; kwargs 的这种用法在代码的任何其他部分都有效。
如何解决这个问题?
编辑:
完整追溯:
Traceback (most recent call last):
File "/env/lib/python3.6/site-packages/django/contrib/staticfiles/handlers.py", line 63, in __call__
return self.application(environ, start_response)
File "/env/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 170, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in get_response
response = self._middleware_chain(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/utils/deprecation.py", line 133, in __call__
response = self.get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/env/lib/python3.6/site-packages/django_extensions/management/technical_response.py", line 6, in null_technical_500_response
six.reraise(exc_type, exc_value, tb)
File "/env/lib/python3.6/site-packages/six.py", line 686, in reraise
raise value
File "/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/env/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/project/foobar/products/views.py", line 1267, in product_list_view
filters, excludes = apply_filters(request)
File "/project/foobar/products/views.py", line 1085, in apply_filters
excludes = Q(**exclude_filter)
File "/env/lib/python3.6/site-packages/lxml/builder.py", line 218, in __call__
get(dict)(elem, attrib)
File "/env/lib/python3.6/site-packages/lxml/builder.py", line 205, in add_dict
attrib[k] = typemap[type(v)](None, v)
KeyError: <class 'bool'>
推测您已经实例化了一个 lxml 对象并在您的代码前面调用了它 Q
,这将覆盖您从 django.db.models 导入的 Q 对象。重命名对象。