проблема с переходной моделью и абстрактной моделью

Я хочу сделать отчет, показывающий бухгалтерскую книгу, для этого я создал transientmodel и abstractmodel , но я не могу заставить его работать, так как я получаю следующую ошибку:

Файл "/mnt/c/odoo/odoo/models.py", строка 4727, в sure_one

raise ValueError("Expected singleton: %s" % self)

ValueError: Ожидаемый синглтон: project_rc.account (1, 2)

Идея системы состоит в том, чтобы показать мне дебет и кредит, которым владеет каждый. Я сделал следующий код, чтобы он работал, но он не работает, как я уже говорил.

py wizard

класс Book (models.TransientModel):

_name='proyecto_rc.libro'

fecha_inicio = fields.Date(string="Fecha inicio", required=True)

fecha_termino = fields.Date(string="Fecha termino", required=True)

cuenta_id = fields.Many2one(comodel_name='proyecto_rc.cuenta', string='Cuenta')

@api.multi

def action_report(self):

    """Metodo que llama la lógica que genera el reporte"""


    datas={'ids': self.env.context.get('active_ids', [])}

    res = self.read(['fecha_inicio', 'fecha_termino'])

    res = res and res[0] or {}

    datas['form'] = res

    domain=[]

    if self.fecha_inicio:

        domain=[('create_date','<',self.fecha_inicio)]

    fields=['titulo','total_cuenta_debe','total_cuenta_haber']

    lmayor_data = self.env['proyecto_rc.cuenta'].search_read(domain,fields)

    datas['lmayor_data'] = lmayor_data

    return self.env['report'].get_action([], 'proyecto_rc.report_libromayor', data=datas)

py отчет:

класс report_libromayor (модели .AbstractModel):

_name = 'report.proyecto_rc.libromayor'

@api.model

def render_html(self, docids, data=None):

    data = data if data is not None else {}

    libromayor = self.env['proyecto_rc.cuenta'].browse(data.get('ids', data.get('active_ids')))

    docargs = {

        'doc_ids': data.get('ids', data.get('active_ids')),

        'doc_model': 'proyecto_rc.cuenta',

        'docs': libromayor,

        'data': dict(

            data

        ),

    }

    return self.env['report'].render('proyecto_rc.libromayor_template', docargs)
0
задан 21.11.2019, 17:28
1 ответ

Ошибка не появляется в тебе cГіdigo, в какой-то funciГіn ты перемещаешь его счет id 1, 2, когда только deberГ-схвати его перемещения одной, этого он идет ensure_one, это raise, который старается избегать того, чтобы он проскользнул мимо mГЎs рекордов.

, Так как estГЎs отлаживая, он анализирует и находит, где тебя отпускает raise и помещает ее funciГіn в for, для того, чтобы он это пробежал и делал ее funciГіn один за другим.

0
ответ дан 01.12.2019, 11:02
  • 1
    сейчас у меня ошибка не выходит, но только меня печатает доклад без какой-либо информации, если я открываю чат и приглашаю тебя ты мог бы вести меня? – Francisco González Mejías 30.11.2019, 02:13