我仍然有这个错误的代码的另一部分:类型错误:类型“布尔”对象没有LEN() - Odoo V9社区
class invoice(models.Model):
_inherit = "account.invoice"
@api.multi
def send_xml_file(self):
# haciendolo para efacturadelsur solamente por ahora
host = 'https://www.efacturadelsur.cl'
post = '/ws/DTE.asmx' # HTTP/1.1
url = host + post
_logger.info('URL to be used %s' % url)
# client = Client(url)
# _logger.info(client)
_logger.info('len (como viene): %s' % len(self.sii_xml_request))
response = pool.urlopen('POST', url, headers={
'Content-Type': 'application/soap+xml',
'charset': 'utf-8',
'Content-Length': len(
self.sii_xml_request)}, body=self.sii_xml_request)
_logger.info(response.status)
_logger.info(response.data)
self.sii_xml_response = response.data
self.sii_result = 'Enviado'
之前我在以前question错误是解决这一行:
_logger.info('len (como viene): %s' % (len(self.sii_xml_request) if self.sii_xml_request else '')
现在我再次拥有它的下一个,我已经试过了条件像以前一样,但我仍然解决不了的,必须与语法什么的,错误是这句话:
response = pool.urlopen('POST', url, headers={
'Content-Type': 'application/soap+xml',
'charset': 'utf-8',
'Content-Length': len(
self.sii_xml_request)}, body=self.sii_xml_request)
具体的self.sii_xml_request)}, body=self.sii_xml_request)
还有的sii_xml_request
对象再次,我认为仅仅是添加的条件,因为该字段为空的问题...
但我仍然无法使其正常工作,这是可解与我之前的问题类似吗?
在此先感谢!
编辑
这不是一个重复,因为这是另一行代码,并解决它不会在这里应用非常非常相似的方式,这是一个稍微不同的语法。
第二个编辑
这是它的外观,现在,条件是此功能
@api.multi
def send_xml_file(self):
# haciendolo para efacturadelsur solamente por ahora
host = 'https://www.efacturadelsur.cl'
post = '/ws/DTE.asmx' # HTTP/1.1
url = host + post
_logger.info('URL to be used %s' % url)
# client = Client(url)
# _logger.info(client)
_logger.info('len (como viene): %s' % len(self.sii_xml_request)if self.sii_xml_request else '')
#if self.sii_xml_request:
response = pool.urlopen('POST', url, headers={
'Content-Type': 'application/soap+xml',
'charset': 'utf-8',
'Content-Length': (len(
self.sii_xml_request) if self.sii_xml_request else '')}, body=self.sii_xml_request)
#else ''(len(self.sii_xml_request) if self.sii_xml_request else '')
_logger.info(response.status)
_logger.info(response.data)
self.sii_xml_response = response.data
self.sii_result = 'Enviado'
您可以显示“self.sii_xml_request”的定义吗?当出现这个错误时,这是因为该属性返回'True'或'False',并且您正在尝试调用'len()',这对布尔值不起作用。你需要确保'self.sii_xml_request'总是返回一个字符串(如果这是你想要它返回的) – elethan
(新的评论,因为旧的太老,无法编辑)。 '(len(self.sii_xml_request)if self.sii_xml_request else'')'也可以在这种情况下工作,但只有当'self.sii_xml_request'返回'False';如果它返回“真”,它将以相同的方式失败。 – elethan
[TypeError:'bool'类型的对象有可能重复没有len() - Odoo v9](http://stackoverflow.com/questions/39113494/typeerror-object-of-type-bool-has-no-len -odoo-v9) – elethan