Не удается создать записи Odoo, имеющие последовательности с ORM - PullRequest
0 голосов
/ 31 октября 2019

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

# -*- coding: utf-8 -*-

from odoo import models, fields, api, exceptions


class SoapTransaction(models.Model):
    _name = 'soap.transaction'

    state = fields.Selection([('draft', 'Borrador'),
                              ('requested', 'Solicitado'),
                              ('answered', 'Respondido'),
                              ('registered', 'Registrado')],
                             string='Estado',
                             required=True,
                             default='draft')
    sequence_id = fields.Char(readonly=True, string='Transacción')
    transaction_type = fields.Selection([('request', 'Solicitud'),
                                         ('response', 'Respuesta')],
                                        string='Tipo de transacción',
                                        required=True,
                                        default='request')
    method_id = fields.Many2one('soap.method', string='Método')
    service_id = fields.Many2one(string='Servicio', related='method_id.service_id')
    request_line_ids = fields.One2many('soap.transaction.line', 'transaction_id', string='Líneas de transacción')

    @api.model
    def create(self, vals):
        seq = self.env['ir.sequence'].next_by_code('transaction.sequence') or '/'
        vals['sequence_id'] = seq
        return super(SoapTransaction, self).create(vals)

Мастер для создания записи так же прост, как и следующий код:

# -*- coding: utf-8 -*-

from odoo import models, fields, api, exceptions


class SoapTransactionWizard(models.TransientModel):
    _name = 'soap.transaction.wizard'

    method_id = fields.Many2one('soap.method', string='Operación')

def create_request(self):
    transaction_record = self.env['soap.transaction']
    transaction_record.create = ({
            'state': 'draft',
            'transaction_type': 'request',
            'method_id': self.method_id,
        })
...