当我点击type ='object'的按钮时,总是调用write方法。我也会自己多次调用一些写入方法,并将值传递给上下文,该按钮是从按钮调用的:
self.with_context(called_from_btn=True).write({
'product_route_id': product_id.id,
'route_is_confirmed': True
})
在这种情况下,在write方法中我可以检查它是否是从按钮调用而不是根据它进行操作。
@api.multi
def write(self, values):
res = super(Table, self).write(values)
if 'called_from_btn' in self.env.context:
## make actions here
问题是有一种写方法总是被调用,我无法看到。我想覆盖write方法调用并传递上下文called_from_btn或做类似的事情。是否有可能实现这样的目标?
到目前为止我尝试过的是点击按钮时返回空写方法,但我没有成功:
return self.with_context(called_from_btn=True).write()
感谢您抽出宝贵时间考虑我的问题。
答案 0 :(得分:0)
您可以使用以下方法进行操作。
<button name="download_report" type="object" icon="STOCK_SAVE"/>
@api.multi
def download_report(self):
self.with_context({'called_from_btn':True}).call_your_method()
@api.multi
def download_report(self):
self.call_your_method()
//call custom method from here
您可以直接从按钮方法传递上下文,或者按钮方法编写代码。
这可能会对你有帮助。