【问题标题】:'bool' object has no attribute '__getitem__' in Odoo 8'bool' 对象在 Odoo 8 中没有属性 '__getitem__'
【发布时间】:2017-11-06 06:18:00
【问题描述】:

我正在尝试根据用户选择显示报告,这是文件 .py 中的代码:

@api.multi
def render_html(self,data=None,context=None):

    if data['region_id']==True or data['location_id']==False or data['no_zero']==False:
        report=self.env['report']
        document=self._get_report_s_r(data)
        docss=self._get_report_s_r_detail(data)
        ctx=self._context.copy()
        object=self.env['report.wizard'].browse([ctx['active_id']])
        data={'o':object,'docs':document,'docss':docss}
        return report.render('report.report_s', data)

    elif data['region_id']==False or data['location_id']==True or data['no_zero']==False:
        report=self.env['report']
        document=self._get_report_s_false(data)
        docss=self._get_report_s_false_detail(data)
        ctx=self._context.copy()
        object=self.env['report.wizard'].browse([ctx['active_id']])
        data={'o':object,'docs':document,'docss':docss}
        return report.render('report.pos_report_sales', data)

    elif data['region_id']==False or data['location_id']==True or data['no_zero']==True:
        report=self.env['report']
        document=self._get_report_s(data)
        docss=self._get_report_s_detail(data)
        ctx=self._context.copy()
        object=self.env['report.wizard'].browse([ctx['active_id']])
        data={'o':object,'docs':document,'docss':docss}
        return report.render('report.pos_report_s', data)

    else:
        _logger.error('Required document not set in Report!')
  1. region_id = True,location_id = False,no_zero = False:正确
  2. region_id = False,location_id = True,no_zero = False:错误('bool' 对象没有属性'getitem')
  3. region_id = False, location_id = True, no_zero = True : 错误(显示应该是数字 2)
  4. region_id = True, location_id = True, no_zero = True : 错误(显示应该是数字 3)
  5. 如果我将 'or' 更改为 'and',则所有报告都是错误(空白)。

希望有人帮助我。谢谢!

【问题讨论】:

  • 能否显示日志,出错的行?
  • 回溯(最近一次调用最后):文件“C:\Program Files (x86)\Odoo 8.0-20170820\server\.\openerp\api.py”,第 387 行,在 old_api 文件中“ C:\Program Files (x86)\Odoo 8.0-20170820\server\openerp\addons\report\models\report.py”,第 93 行,在 render_html 文件“C:\Program Files (x86)\Odoo 8.0-20170820\ server\openerp\addons\report\models\report.py",第 117 行,在 _get_report TypeError: 'bool' object has no attribute 'getitem'
  • 您需要找到指向您的代码的日志行。如果调用者期望结果不是 None,则返回默认值。
  • 我想,我已经找到了解决方案。我订购 True,如果 True 为 1,则在顶部,如果 True 为 2,则在其下方,等等?
  • 好,想在下面添加您的解决方案。

标签: python python-2.7 odoo odoo-8 qweb


【解决方案1】:

我订购了 True 并使用以下代码找到了解决方案:

@api.multi
def render_html(self,data=None,context=None):

if data['region_id']==True or (data['location_id']==False and data['no_zero']==False):
    report=self.env['report']
    document=self._get_report_s_r(data)
    docss=self._get_report_s_r_detail(data)
    ctx=self._context.copy()
    object=self.env['report.wizard'].browse([ctx['active_id']])
    data={'o':object,'docs':document,'docss':docss}
    return report.render('report.report_s', data)

elif data['location_id']==True or (data['region_id']==False and data['no_zero']==False):
    report=self.env['report']
    document=self._get_report_s_false(data)
    docss=self._get_report_s_false_detail(data)
    ctx=self._context.copy()
    object=self.env['report.wizard'].browse([ctx['active_id']])
    data={'o':object,'docs':document,'docss':docss}
    return report.render('report.pos_report_sales', data)

elif (data['location_id']==True and data['no_zero']==True) or data['region_id']==False:
    report=self.env['report']
    document=self._get_report_s(data)
    docss=self._get_report_s_detail(data)
    ctx=self._context.copy()
    object=self.env['report.wizard'].browse([ctx['active_id']])
    data={'o':object,'docs':document,'docss':docss}
    return report.render('report.pos_report_s', data)

else:
    _logger.error('Required document not set in Report!')

但是,我不确定是否适用于所有情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2015-10-26
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多