Odoo 写入不属于当前视图的字段
Odoo write to field not part of the current view
我想更新字段 done_date
,它是 project.task
表单视图的一部分,当在指示为最后阶段的舞台上拉看板时。
如果该字段是看板视图的一部分,我下面的代码可以正常工作,但如果该字段只是任务表单视图的一部分而不是看板项目视图的一部分,我的代码就无法编写。
即使不是看板视图的一部分,也应该写入 done_date 字段。
models.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class project_set_end_date(models.Model):
inherit = 'project.task.type'
last_stage = fields.Boolean(string="Final stage")
class project_set_end_date(models.Model):
_inherit = 'project.task'
@api.onchange('stage_id')
def _set_end_date(self):
if self.stage_id.last_stage:
self.date_finished = fields.Datetime.now()
views.py
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="project_set_end_date">
<field name="name">project.task.type.form</field>
<field name="model">project.task.type</field>
<field name="inherit_id" ref="project.task_type_edit"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='fold']" position='after'>
<field name="last_stage"/>
</xpath>
</field>
</record>
</data>
</odoo>
Odoo 不会写入当前视图中不存在的字段。所以我建议添加该字段,但使用属性 invisible = True 以避免显示它:
<field name="your_field" invisible="True"/>
我想更新字段 done_date
,它是 project.task
表单视图的一部分,当在指示为最后阶段的舞台上拉看板时。
如果该字段是看板视图的一部分,我下面的代码可以正常工作,但如果该字段只是任务表单视图的一部分而不是看板项目视图的一部分,我的代码就无法编写。
即使不是看板视图的一部分,也应该写入 done_date 字段。
models.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class project_set_end_date(models.Model):
inherit = 'project.task.type'
last_stage = fields.Boolean(string="Final stage")
class project_set_end_date(models.Model):
_inherit = 'project.task'
@api.onchange('stage_id')
def _set_end_date(self):
if self.stage_id.last_stage:
self.date_finished = fields.Datetime.now()
views.py
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="project_set_end_date">
<field name="name">project.task.type.form</field>
<field name="model">project.task.type</field>
<field name="inherit_id" ref="project.task_type_edit"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='fold']" position='after'>
<field name="last_stage"/>
</xpath>
</field>
</record>
</data>
</odoo>
Odoo 不会写入当前视图中不存在的字段。所以我建议添加该字段,但使用属性 invisible = True 以避免显示它:
<field name="your_field" invisible="True"/>