【问题标题】:How to call server action from a button click in odoo web client如何通过 odoo Web 客户端中的按钮单击调用服务器操作
【发布时间】:2017-08-31 08:16:41
【问题描述】:

我想创建一个需要相关信息的学生评分表

  1. 学生姓名
  2. 学生所属的课程
  3. 该课程下的单元
  4. 各单元下的教学大纲
  5. 教学大纲有一定的标准

层次结构解释:- 学生注册一门课程,一门课程有几个单元,一个单元有一定的教学大纲(按章节划分),每个章节都有一个评估标准。 评分表基于课程或单元,并针对每个标准给出分数。

因此,为此我在考虑是否可以通过在服务器操作中执行 sql 并通过标记表形式的按钮调用该操作来加载此层次结构的单元、教学大纲和标准。

在尝试时,我只是在服务器操作中写了一条日志语句,并尝试使用<button type="action" name="%(action_name)d" string="log"/> 调用它,但它没有做任何事情。

另外请提出替代方案,以防在 odoo Web 客户端中这不是一个好方法或不可能这样做。

提前感谢您的帮助。

服务器操作This is the server Action

在我看来,我将它用作<button type="action" name="%(getUnitsForCourse)d" string="log"/>,但它既没有做任何事情,也没有给出任何错误。当我从标题中的Action 按钮调用它时,它运行正常并记录了结果。

【问题讨论】:

  • 你能分享你的服务器操作吗?
  • @VikiChavada 先生,我现在已经编辑了我的问题,您可以检查服务器操作

标签: openerp open-source odoo-9 odoo-10


【解决方案1】:

您需要在按钮中使用 type="object" 而不是 type="action",并且需要创建 py 函数,因为我们使用的是 type="object"。

例如。

XML

<button type="object" name="test_server_action" string="call Server Action"/>

PY

 @api.multi
 def test_server_action(self):
    self.env.ref('external_id  of  server action').run()

【讨论】:

    猜你喜欢
    • 2021-03-27
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多