【问题标题】:Could not find client action (openERP 8/Odoo)找不到客户端操作 (openERP 8/Odoo)
【发布时间】:2014-06-03 10:35:43
【问题描述】:

我试图按照这个构建网络模块的指南:https://doc.openerp.com/trunk/web/module/

我根据指南创建了以下文件:

// static/src/js/first_module.js
openerp.web_example = function (instance) {
    instance.web.client_actions.add('example.action', 'instance.web_example.action');
    instance.web_example.action = function (parent, action) {
        console.log("Executed the action", action);
    };
};

openerp.py

# __openerp__.py
{
    'name': "Web Example",
    'description': "Basic example of a (future) web module",
    'category': 'Hidden',
    'depends': ['web'],
    'data': ['web_example.xml'],
    'js': ['static/src/js/first_module.js'],
}

web_example.xml

<!-- web_example/web_example.xml -->
<openerp>
    <data>
        <record model="ir.actions.client" id="action_client_example">
            <field name="name">Example Client Action</field>
            <field name="tag">example.action</field>
        </record>
        <menuitem action="action_client_example"
                  id="menu_client_example"/>
    </data>
</openerp>

init.py 为空。

现在“示例客户端操作”链接出现在管理面板的顶部栏中,就像它应该出现的那样,但是当我单击它时,我收到一条通知说“找不到客户端操作 example.action”

我已经检查了几次我的代码,以确保它与指南的相似。我只是对一些小错误视而不见,是否存在误解或可能是什么问题? init.py 文件中应该有什么内容吗?如果是,那是什么?

【问题讨论】:

    标签: module openerp openerp-8


    【解决方案1】:

    在 v8 中添加静态文件与 v7 不同。 您必须在继承核心视图的视图中定义静态文件。 1.在模块文件夹中创建名为views的文件夹 2.在where文件中创建名为:you_module_name.xml 3.在openerp.py中添加:'data': ['views/you_module_name.xml'] 4.在you_module_name.xml中添加:

    <?xml version="1.0" encoding="utf-8"?>
    <openerp>
    <data>
        <template id="assets_backend" name="you_module_name assets" inherit_id="web.assets_backend">
            <xpath expr="." position="inside">
                <link rel="stylesheet" href="/you_module_name/static/src/css/you_module_name.css"/>
                <script type="text/javascript" src="/you_module_name/static/src/js/you_module_name.js"></script>
            </xpath>
        </template>
    </data>
    

    【讨论】:

      【解决方案2】:

      如果您还没有找到任何方法,请按照以下步骤操作 OpenERP8/odoo。 在您的web_example 模块中添加以下内容。

      网络示例

      └── 浏览量

        └──document.xml
      

      document.xml下面添加包含。

      <data>
          <template id="web_example_assets_backend" name="web_example assets" inherit_id="web.assets_backend">`enter code here`
              <xpath expr="." position="inside">
                  <script type="text/javascript" src="/web_example/static/src/js/first_module.js"></script>
              </xpath>
          </template>
      </data>
      

      现在,修改 openerp.py

      openerp.py

      {

      'name': "Web Example",
      'description': "Basic example of a (future) web module",
      'category': 'Hidden',
      'depends': ['web'],
      'data': ['web_example.xml','views/document.xml'],
      

      }

      就是这样。 现在,您的js 文件已加载到v8/odoo。 :)

      同样的方式你可以在document.xml 中添加你的css 文件

      谢谢。

      【讨论】:

        【解决方案3】:

        我正在迈出构建 Web 客户端的第一步,昨天刚刚尝试了本教程。所以我不确定我的答案是否正确,但是,您的模块名称是“web_example”吗?如果没有,你应该在你的 js 文件中使用你的模块名称来实例化它。 (它对我有用,通过教程并让计时器工作)。

        祝你好运!

        【讨论】:

        • 谢谢,已检查,但无法正常工作。似乎 javascript 文件并没有真正加载。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 2017-07-08
        • 1970-01-01
        • 2015-03-19
        • 1970-01-01
        相关资源
        最近更新 更多