2

openerp で新しいモジュールを作成しました。モジュールにセキュリティを付与したいので、モジュール フォルダー内に "security" という名前のフォルダーを作成し、その中に xml ファイルと ir.model.access.csv ファイルを作成しました。目的は、自分のモジュールに 2 つのロールを作成することです。1 つはマネージャーで、もう 1 つはユーザーです。そのために、xmlファイルに以下のコードを追加しました

<record id="group_mat_mgmt_user" model="res.groups">
        <field name="name">User</field>
        <field name="category_id" ref="base.module_category_mat_mgmt"/>
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
    </record>
    <record id="group_mat_mgmt_manager" model="res.groups">
        <field name="name">Manager</field>
        <field name="category_id" ref="base.module_category_mat_mgmt"/>
        <field name="implied_ids" eval="[(4, ref('group_mat_mgmt_user'))]"/>
        <field name="users" eval="[(4, ref('base.user_root'))]"/>
    </record>

このように追加したビュー部分で

<menuitem name="Materials Management" id="menu_mat_mgmt_root"
        groups="group_mat_mgmt_manager,group_mat_mgmt_user"
        sequence="80"/>

次に、csvで許可されましたが、このようなエラーが発生しました

ファイル "C:\OpenErp\openerp\openobject-server\openerp\addons\base\ir\ir_model.py"、850 行目、_get_id で ValueError('No such external ID currently defined in the system: %s.%s ' % (module, xml_id)) alueError: 現在システムで定義されている外部 ID はありません: mat_mgmt.group_mat_mgmt_manager

4

1 に答える 1

3

openerp .py に適切な順序でファイルを追加しなかったようです。このエラーは CSV ファイルまたは View.xml ファイルから発生していますか?

openerp .py ファイルを確認する必要があります。最初に ir.model.access.csv/module_view.xml を割り当ててから、「data」属性に module_security.xml を割り当てることができます。そのため、最初に ir.model.access.csv/module_view.xml をチェックしますが、security.xml で作成したグループが見つからず、ir.model.access.csv/module_view.xml のロード後にロードされます。ファイル。それを確認して、最初に security.xml を渡し、その後、openerp .py で ir.model.access.csv/module_view.xml ファイルを渡す必要があります。

次のようにグループを割り当てて確認することもできます: module_name.GROUP_XML_ID これらのグループを割り当て/使用した場所。

于 2013-05-17T05:30:10.480 に答える