I'm not a expert but i create a tiny modules before now i'm getting this error, i have been development other models of this same module without error after two weeks, i'm asking help because I cannot find the error.
When I install the module the first time on clean database, i can create a record, but next times or if i uninstall and reinstall i cannot.
This is the error i got:
RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "D:\OdooCDev\server\odoo\addons\base\models\ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "D:\OdooCDev\server\odoo\http.py", line 688, in dispatch
result = self._call_function(**self.params)
File "D:\OdooCDev\server\odoo\http.py", line 360, in _call_function
return checked_call(self.db, *args, **kwargs)
File "D:\OdooCDev\server\odoo\service\model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "D:\OdooCDev\server\odoo\http.py", line 349, in checked_call
result = self.endpoint(*a, **kw)
File "D:\OdooCDev\server\odoo\http.py", line 917, in __call__
return self.method(*args, **kw)
File "D:\OdooCDev\server\odoo\http.py", line 536, in response_wrap
response = f(*args, **kw)
File "D:\OdooCDev\server\odoo\addons\web\controllers\main.py", line 1348, in call_kw
return self._call_kw(model, method, args, kwargs)
File "D:\OdooCDev\server\odoo\addons\web\controllers\main.py", line 1340, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "D:\OdooCDev\server\odoo\api.py", line 464, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "D:\OdooCDev\server\odoo\api.py", line 451, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "D:\OdooCDev\server\odoo\models.py", line 6490, in onchange
result['value'] = snapshot1.diff(snapshot0, force=first_call)
File "D:\OdooCDev\server\odoo\models.py", line 6314, in diff
result[name] = field.convert_to_onchange(self[name], record, {})
File "D:\OdooCDev\server\odoo\fields.py", line 2836, in convert_to_onchange
if not value.id:
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\OdooCDev\server\odoo\http.py", line 644, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "D:\OdooCDev\server\odoo\http.py", line 302, in _handle_exception
raise exception.with_traceback(None) from new_cause
AttributeError: '_unknown' object has no attribute 'id'
Now this is my model:
from odoo import fields, models, api
class Expedientes(models.Model):
_inherit = ['mail.thread']
_name = 'logimpex.expedientes'
_description = 'Expedientes'
_rec_name = 'name'
_order = 'name'
# Información General del Expediente
name = fields.Char(string='Expediente', default='New', required=True, index=True)
operation_type = fields.Many2one('logimpex.operation', string='Tipo de Operación', required=True, tracking=True)
service_type = fields.Selection([('load', 'Cargo'), ('moving', 'Mudanza')],
string='Cargo / Mudanza', required=True, tracking=True)
move_type = fields.Selection([('import', 'Importación'), ('export', 'Exportación'), ('national', 'Nacional')],
string='Imp / Exp / Nac', required=True, tracking=True)
transportation_type = fields.Selection([('marine', 'Marítimo'), ('air', 'Aéreo'), ('ground', 'Terrestre')],
string='Marítimo / Aéreo / Terrestre', required=True, tracking=True)
transportation_border = fields.Many2one('logimpex.borders', string='Frontera', tracking=True)
# Información de Peso Volumen
volumen = fields.Float(string='Volumen (m³)', tracking=True)
weight = fields.Float(string='Peso (kg)', tracking=True)
weight_chargeable = fields.Float(string='Peso Cobrable (kg)', tracking=True)
pza_num = fields.Integer(string='# de Piezas', tracking=True)
amount = fields.Monetary(string='Valor', tracking=True)
currency_id = fields.Many2one('res.currency', string='Moneda', tracking=True)
note = fields.Text(string='Descripción', tracking=True)
# Información de Origen / Destino / Viaje
origin = fields.Many2one('res.country', string='Origen', required=True, tracking=True)
destiny = fields.Many2one('res.country', string='Destino', required=True, tracking=True)
start_date = fields.Date(string='Fecha Inicio', default=fields.Date.today, tracking=True)
end_date = fields.Date(string='Fecha Fin', default=fields.Date.today, tracking=True)
partner_id = fields.Many2one('res.partner', string='Cliente', required=True, tracking=True)
responsable_id = fields.Many2one('res.users', string='Responsable', tracking=True)
# Información de Seguimiento
ref = fields.Char(string='Referencia Interna', tracking=True)
pickup = fields.Char(string='Recolección', tracking=True)
load = fields.Many2one('logimpex.ports.airports', string='Carga', tracking=True)
unload = fields.Many2one('logimpex.ports.airports', string='Descarga', tracking=True)
delivery = fields.Char(string='Entrega', tracking=True)
master = fields.Char(string='Master', tracking=True)
house = fields.Char(string='House', tracking=True)
incoterm_id = fields.Many2one('account.incoterms', string='Incoterms', tracking=True)
# Campos de Documentación del Embarque
doc_embarque = fields.Binary(string="Documentos de Embarque")
doc_factura_comercial = fields.Binary(string="Factura Comercial")
doc_lista_empaque = fields.Binary(string="Lista de Empaque")
doc_blawbbol = fields.Binary(string="BL / AWB / BOL")
doc_cert_origen = fields.Binary(string="Certificado de Origen")
doc_ficha_tecnica = fields.Binary(string="Ficha Técnica")
and this is my view:
logimpex.expedientes.tree
logimpex.expedientes
logimpex.expedientes.form
logimpex.expedientes
logimpex.expedientes.search
logimpex.expedientes
logimpex.expedientes.gantt
logimpex.expedientes
date_stop="end_date"
default_group_by='partner_id'>
Expedientes
ir.actions.act_window
logimpex.expedientes
form
tree,form,gantt
Crear tu primer registro!
Hi!
Could you check that you have added the necessary depends to your __manifest__.py? It is similar as you didn't add the dependency to the "product" module that contains the "product.template" model.
"depends": ["product"],
As a suggestion, the relation field name would be more clearer if it will have the suffix "_id" for Many2one fields and "_ids" for Many2many or One2many fields. As recommended in Odoo Developer Guidelines: https://www.odoo.com/documentation/14.0/developer/misc/other/guidelines.html?highlight=developer guideline#symbols-and-conventions