用户在自定义模块中编辑many2one字段时的AccessError

时间:2016-12-17 16:39:33

标签: python openerp odoo-8 openerp-8

我创建了一个自定义模块,将一些字段添加到合作伙伴数据中。一切似乎都运作良好,但没有管理员用户无法编辑many2one字段。它显示以下消息(就好像该模型的任何权限配置错误一样):

enter image description here

完成您的要求后,会发生以下情况:

这是我得到的错误:

Exception: Fall\xf3 el m\xf3dulo cargando cant_neg_dir: no se pudo procesar el archivo cant_neg_dir/security/ir.model.access.csv: Line 1 : No se han encontrado registros coincidentes para id. externo 'group_name_test_user' en el campo 'Object'

这就是我在文件中的内容:

ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sector_user,sector.user,group_name_test_user,base.group_user,1,1,1,1

cant_dir_security.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="0">
        <record model="ir.module.category" id="module_category_name_test">
            <field name="name">Management</field> 
            <field name="sequence">7</field>
        </record>
        <record id="group_name_test_user" model="res.groups">
            <field name="name">User</field>
            <field name="category_id" ref="module_category_name_test"/>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>
        <record id="group_name_test_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="module_category_name_test"/>
            <field name="implied_ids" eval="[(4, ref('group_name_test_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_root'))]"/>
        </record>
    </data>
</openerp>

cant_neg_dir.py

import openerp
from openerp.osv import fields, osv, orm
from openerp import models


class poligono(models.Model):
    _name = "poligono"
    _rec_name= "poligono_name"
    _columns = {
        'poligono_name': fields.char('Polígono', required=True),   
}  

class sector(models.Model):
    _name = "sector"
    _rec_name= "sector_name"
    _columns = {
        'sector_name': fields.char('Sector', required=True),   
}   

class municipio(models.Model):
    _name = "municipio"
    _rec_name= "municipio_name"
    _columns = {
        'municipio_name': fields.char('Municipio', required=True),   
}

再次感谢您的帮助。

问候。

1 个答案:

答案 0 :(得分:1)

您需要为新对象提供安全访问权限。

我们可以通过代码完成。例如:

access_sector,sector.user,model_sector,base.group_user,1,1,1,1

有关详细信息security/ir.model.access.csvOdoo Security Documentation.

修改

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sector,sector.user,model_sector,base.group_user,1,1,1,1

修改

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sector_user,sector.user,your_module_name.group_name_test_user,base.group_user,1,1,1,1

并确保openerp.py文件看起来像位置文件名

cant_dir_security.xml
ir.model.access.csv