我正在 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/