我仍然有這個錯誤的代碼的另一部分:類型錯誤:類型「布爾」對象沒有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