代码之家  ›  专栏  ›  技术社区  ›  Fadhel J Muhammad

“bool”对象在Odoo 8中没有属性“_getitem___”

  •  1
  • Fadhel J Muhammad  · 技术社区  · 9 年前

    我试图显示基于用户选择的报告,这是文件中的代码。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\u id=True,location\u id=False,no\u zero=False:正确
    2. 获取项目 ')
    3. region\u id=False,location\u id=True,no\u zero=True:错误(显示应该是数字2)
    4. region\u id=True,location\u id=True,no\u zero=True:错误(显示应该是数字3)
    5. 如果我更改“或”with“and”,则所有报告均为错误(空白)。

    希望有人能帮助我。谢谢你!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Fadhel J Muhammad    9 年前

    我订购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!')
    

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