I'm developing a custom module in Odoo (version X.X) called latihan_purchase. However, when I try to install or upgrade the module, I encounter the following error:
Exception: Module loading latihan_purchase failed: file latihan_purchase\security/ir.model.access.csv could not be processed:
No matching record found for external id 'model_latihan_purchase_line' in field 'Model'
Missing required value for the field 'Model' (model_id)
Here is the content of my ir.model.access.csv file:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_latihan_purchase,access_latihan_purchase,model_latihan_purchase,,1,1,1,1
access_latihan_purchase_line,access_latihan_purchase_line,model_latihan_purchase_line,,1,1,1,1
And here is my model definition in models/models.py:
from odoo import models, fields
class LatihanPurchase(models.Model):
_name = 'latihan.purchase'
name = fields.Char(string='Name', required=True)
tanggal = fields.Date(string='Date')
status = fields.Selection([
('draft', 'Draft'),
('approved', 'Approved'),
('done', 'Done')
], default='draft')
latihan_purchase_line_ids = fields.One2many('latihan.purchase.line', 'latihan_purchase_id', string='Purchase Lines')
class LatihanPurchaseLine(models.Model):
_name = 'latihan.purchase.line'
latihan_purchase_id = fields.Many2one('latihan.purchase', string='Purchase Reference')
product_id = fields.Many2one('product.product', string='Product')
quantity = fields.Float(string='Quantity', default=0)
uom_id = fields.Many2one('uom.uom', string='Unit of Measure')
My init.py file correctly loads the models:
My __init__.py file correctly loads the models:
And inside models/init.py:
from . import models # since the model file is named models.py
My manifest.py includes:
'data': [
'security/ir.model.access.csv',
],
Ensured that the model file is loaded correctly via init.py
Confirmed that model names and class names are correctly spelled
Re-upgraded the module multiple times
Just add the module's name to the external ID and it should work.
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_latihan_purchase,access_latihan_purchase,latihan_purchase.model_latihan_purchase,,1,1,1,1
access_latihan_purchase_line,access_latihan_purchase_line,latihan_purchase.model_latihan_purchase_line,,1,1,1,1