Odoo 12. 当我更改权限文件 ir.model.access.csv 并升级模块时,缺少字段 'Object' (model_id) 的必需值
Odoo 12. Missing required value for the field 'Object' (model_id) when I change the permission file ir.model.access.csv and upgrade the module
我已经在 odoo 12 中创建了自己的模块。我已经更改了权限文件 - ir.model.access.csv。全部代码如下
ir.model.access.csv :
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_student_student,access.student.student,model_student_student,,1,1,1,0
./models/models :
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class StudentStudent(models.Model):
_name = "student.student"
_description = "description"
name = fields.Char(string="Name", required=True)
age = fields.Integer(string="Age")
photo = fields.Binary(string="Image")
gender = fields.Selection(
[("male", "Male"), ("female", "Female"), ("others", "Others")], string="Gender"
)
student_dob = fields.Date(string="Date of Birth")
student_blood_group = fields.Selection(
[
("A+", "A+ve"),
("B+", "B+ve"),
("O+", "O+ve"),
("AB+", "AB+ve"),
("A-", "A-ve"),
("B-", "B-ve"),
("O-", "O-ve"),
("AB-", "AB-ve"),
],
string="Blood Group",
)
nationality = fields.Many2one("res.country", string="Nationality")
当我尝试升级我的模块时出现错误消息:
Exception: Module loading assettracking failed: file assettracking\security/ir.model.access.csv could not be processed:
No matching record found for external id 'model_student_student' in field 'Object'
Missing required value for the field 'Object' (model_id)
检查您的模型是否已加载到数据库中,如果没有,请在升级之前重新启动您的服务器以加载它。如果您已经这样做了,请尝试在您的 CSV 文件中使用:module_name.model_student_student
。
请检查您是否为student.student模型编写了init.py文件。
如果是,请在 .csv 文件中尝试以下代码access_student_student,access_student_student,model_student_student,,1,1,1,0
我通常做的一个技巧是添加一个模型,然后启动服务器进程,系统会警告我这个模型没有权限,并给你一个要添加到 [=17 的行的例子=].我从 shell window 复制它并将其粘贴到 ir.model.access.csv 并进行相应的编辑。
对于 Odoo 12,我发现您需要在 ir.model.access.csv 文件中指定一个用户组。如果我不指定用户组,则不会为我的用户显示菜单项。
我已经设置了具有不同权限的自定义用户组,但通常的默认设置是为 base.erp_user 和 base.erp_manager 指定权限。条目的一个例子是
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_student_student_user,access_student_student_user,model_student_student,base.group_user,1,1,1,0
access_student_student_admin,access_student_student_admin,model_student_student,base.group_erp_manager,1,1,1,1
以上面的例子为例,普通用户可以创建、阅读和编辑学生记录,但不能删除记录,而管理员可以删除记录。如果您指定自定义用户组,只有当登录用户在这些组中时,学生的菜单选项才会出现。
我已经在 odoo 12 中创建了自己的模块。我已经更改了权限文件 - ir.model.access.csv。全部代码如下
ir.model.access.csv :
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_student_student,access.student.student,model_student_student,,1,1,1,0
./models/models :
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class StudentStudent(models.Model):
_name = "student.student"
_description = "description"
name = fields.Char(string="Name", required=True)
age = fields.Integer(string="Age")
photo = fields.Binary(string="Image")
gender = fields.Selection(
[("male", "Male"), ("female", "Female"), ("others", "Others")], string="Gender"
)
student_dob = fields.Date(string="Date of Birth")
student_blood_group = fields.Selection(
[
("A+", "A+ve"),
("B+", "B+ve"),
("O+", "O+ve"),
("AB+", "AB+ve"),
("A-", "A-ve"),
("B-", "B-ve"),
("O-", "O-ve"),
("AB-", "AB-ve"),
],
string="Blood Group",
)
nationality = fields.Many2one("res.country", string="Nationality")
当我尝试升级我的模块时出现错误消息:
Exception: Module loading assettracking failed: file assettracking\security/ir.model.access.csv could not be processed:
No matching record found for external id 'model_student_student' in field 'Object'
Missing required value for the field 'Object' (model_id)
检查您的模型是否已加载到数据库中,如果没有,请在升级之前重新启动您的服务器以加载它。如果您已经这样做了,请尝试在您的 CSV 文件中使用:module_name.model_student_student
。
请检查您是否为student.student模型编写了init.py文件。
如果是,请在 .csv 文件中尝试以下代码access_student_student,access_student_student,model_student_student,,1,1,1,0
我通常做的一个技巧是添加一个模型,然后启动服务器进程,系统会警告我这个模型没有权限,并给你一个要添加到 [=17 的行的例子=].我从 shell window 复制它并将其粘贴到 ir.model.access.csv 并进行相应的编辑。
对于 Odoo 12,我发现您需要在 ir.model.access.csv 文件中指定一个用户组。如果我不指定用户组,则不会为我的用户显示菜单项。 我已经设置了具有不同权限的自定义用户组,但通常的默认设置是为 base.erp_user 和 base.erp_manager 指定权限。条目的一个例子是
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_student_student_user,access_student_student_user,model_student_student,base.group_user,1,1,1,0
access_student_student_admin,access_student_student_admin,model_student_student,base.group_erp_manager,1,1,1,1
以上面的例子为例,普通用户可以创建、阅读和编辑学生记录,但不能删除记录,而管理员可以删除记录。如果您指定自定义用户组,只有当登录用户在这些组中时,学生的菜单选项才会出现。