Hil*_* AK 23 python models odoo odoo-view odoo-10
我想fields_view_get在做一些函数后动态触发函数.我重写该函数fields_view_get并返回我的结果.仅在第一次调用实际函数时才会影响XML视图.所以我需要刷新视图以影响arch的新值.
有没有办法让odoo视图fields_view_get在第一次调用函数后才能通过函数改变?
我的尝试:
# here fields view get changes the button string from getting arch
# I overrided the fields_view_get on event model and its get affected and works
# perfectly when I click on main menu Event.but not after the records loaded.
@api.multi
def send_mail_event(self):
x = self.event_id.fields_view_get(view_id=None, view_type='form', toolbar=False, submenu=False)
self.send_mail_event_reg_link(test=True)
return x
Run Code Online (Sandbox Code Playgroud)
在fields_view_get被从所谓load_views的https://github.com/odoo/odoo/blob/10.0/odoo/models.py#L1334和load_views得到由Web客户端的观点经理叫https://github.com/odoo/ odoo / blob / 10.0 / addons / web / static / src / js / view_manager.js#L130
现在,查看从view_manager.js何处load_view以及何时调用。我们可以在https://github.com/odoo/odoo/blob/10.0/addons/web/static/src/js/view_manager.js#L182看到它被调用,这是我们感兴趣的调用。
willStart如果在widget.js上看到该函数,则将该widget附加到其管理的DOM上时会调用该函数。加载dom后,附件仅发生一次。
因此,回顾一下,该fields_view_get页面在页面加载后会运行一次,如果您想再次调用它,则需要通过调用load_viewsjavascript函数从js / web客户端进行操作。
但是通常在Odoo中,请尽可能避免使用Web客户端扩展。如果要基于用户的操作在当前视图上进行更改,则可以使用onchange或任何其他后端挂钩。
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |