У меня проблемы с попыткой создать запись из мастера, я подозреваю, что проблема связана с одной конкретной моделью, созданной с последовательностью, потому что, когда я использую другую модель, она работает просто отлично. Код модели следующий:
# -*- 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,
})