如何从odoo web客户端中的按钮单击调用服务器操作

时间:2017-08-31 08:16:42

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

我想创建一个学生标记表,我需要有关

的信息
  1. 学生姓名
  2. 学生所属的课程
  3. 该课程下的单位
  4. 每个单元下的教学大纲
  5. 课程提纲有一定的标准
  6. 层次结构解释: - 学生注册课程,1门课程有几个单元,1个单元有一定的教学大纲(分为章节),每章都有一个评估标准。 标记表基于课程或单元,并为每个标准给出分数。

    所以,为此,我想是否可以通过在服务器操作中执行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按钮调用它时,它正确运行并记录结果。

1 个答案:

答案 0 :(得分:2)

而不是type =&#34; action&#34;你需要使用type =&#34; object&#34;在按钮中需要创建py函数,因为我们使用type =&#34; object&#34;。

例如。

<强> 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()