1

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

我正在尝试在“x_custom_model”中工作时访问此方法。问题在于没有调用该方法。任何帮助或提示将不胜感激

1)我尝试将方法名称作为名称属性的值:

#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"/>

什么都没有发生,甚至连打印都没有。

我目前被困在这个问题上,我似乎没有找到太多有用的信息,所以任何帮助都将不胜感激。

4

1 回答 1

2

默认,

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

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

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

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

例如:

self.pool.get('other.object').my_method(cr, uid, arg, context=context)
于 2015-04-27T15:29:47.873 回答