python - 从 Odoo 8 中的另一个模型调用方法

标签 python methods code-generation odoo-8

我正在 ir_model “x_custom_model” 中创建一个自定义模型,并在 ir_model_fields 中使用其自己的自定义字段“x_field_name”。 同时,我还生成一个 View ,它使用这个模型和那些字段。 在此 View 中,我生成一个按钮,单击该按钮时,必须调用现有模型“my_model_name”中的方法“my_method”

我正在尝试在当前使用“x_custom_model”时访问此方法。 问题存在于未调用该方法。任何帮助或提示将不胜感激

1)我尝试将方法名称作为 name 属性的值,如下所示:

#Button attributes
<button name="my_method" type="object"/>

Error: x_custom_model had no attribute called "my_method"

2) 通过服务器操作 (Call_My_Method): 设置 -> 操作 -> 服务器操作。

  • 操作名称:Call_My_Method。
  • 基本模型:x_custom_model。
  • 待办事项:执行 Python 代码。

Python 代码:

print "Am I getting here?"
action = {"my_model_name".my_method}

#Button attributes
<button name="Call_My_Method" type="action"/>

没有任何反应,甚至打印也没有。

我目前陷入这个问题,而且我似乎没有找到太多有用的信息,因此我们将不胜感激。

最佳答案

默认情况下,

<button name="my_method" type="object"/>

将调用表单 View 当前对象中的my_method。您为表单 View 定义了对象,例如

<field name="model">x.custom.model</field>

您不能简单地从当前按钮调用另一个对象my_method。您需要在当前的 x_custom_model 对象中定义一个自定义方法,并让它通过创建该对象的实例来调用其他对象的方法。

例如:

self.pool.get('other.object').my_method(cr, uid, arg, context=context)

关于python - 从 Odoo 8 中的另一个模型调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29894279/

相关文章:

python - 当鼠标单击远离 Tkinter 窗口时如何关闭 Tkinter 窗口?

python - 如何在 dask/distributed 中存储 worker-local 变量

Java返回不输出消​​息

haskell - 在 Haskell 中编写 Perl 代码生成器涉及哪些步骤?

c# - 从 C# 生成 JavaScript 的好的架构是什么?

python - 在 wx (python) 中强制面板为正方形

python - 在 python 3.7 中,为什么我的变量被覆盖,而我没有为其分配任何新内容?

grails - grails:findallbyidinlist方法

JAVA HBase : how to use CellUtil. getRowByte(单元格,整数)

java - 从 Java 源文件生成代码