我在ir_model “x_custom_model”中创建了一个自定义模型,在ir_model_fields中有自己的自定义字段“x_field_name”。 同时我也在生成一个视图,它使用了这个模型和那些字段。 在此视图中,我正在生成一个按钮,在点击时,必须在现有模型“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): 设置 - &gt;行动 - &gt;服务器操作。
Python代码:
print "Am I getting here?"
action = {"my_model_name".my_method}
#Button attributes
<button name="Call_My_Method" type="action"/>
没有任何事情发生,甚至没有印刷品。
我目前仍然坚持这个问题而且我似乎没有找到有关它的有用信息,所以任何帮助都会受到赞赏。
答案 0 :(得分: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)