我有这样的农场是形式,One2many字段呈现为树视图:
<field name="o2m_field" options='{"always_reload": True}' nolabel="1" widget="one2many_list" mode="tree,kanban" context="{'form_view_ref': 'my_customer_form'}">
<tree string="Route Location">
<field name="name"/>
<!-- name consists of address city and code -->
<field name="address" invisible="1"/>
<field name="city" invisible="1"/>
<field name="code" invisible="1"/>
</tree>
</field>
当我点击添加项目时,正在打开新表单。当我填充数据并单击“保存并关闭”时,所有内容都会显示在我的o2many树中。只有当我点击父窗体上的保存时,名称才会显示。
计算领域的Python代码:
name = fields.Char(readonly=True, compute='name_line', store=True)
@api.one
@api.depends('name', 'address', 'city', 'code')
def name_line(self):
cust_name = ''
if self.address:
cust_name += self.address + '/'
if self.load_city:
cust_name += self.load_city + '/'
if self.load_postcode:
cust_name += self.load_postcode + '/'
if len(cust_name) > 0:
if cust_name[-1] == '/':
cust_name = cust_name[:-1]
if self.name != cust_name:
self.name = cust_name
我尝试制作always_reload,stored = false以及其他一些我甚至无法记住的解决方案。在此工作几个小时(天)
感谢您抽出宝贵的时间考虑我的问题,祝您度过愉快的一天!
答案 0 :(得分:0)
您应该尝试为on_change
字段添加address, city & postalcode
个字段,这将计算name
字段,并在您保存表单数据之前显示它。