Tua*_*ran 1 field store openerp-8 odoo
我正在使用Odoo 8,我的compute field类型有问题Many2One.
在这里,我宣布department_id:
department_id = fields.Text(
string="Department", store=True,
comodel_name="hr.department",
compute="_get_department_id"
)
Run Code Online (Sandbox Code Playgroud)
和这个计算领域的功能:
@api.depends('employee_id')
def _get_department_id(self):
if self.employee_id.department_id:
self.department_id = self.employee_id.department_id.name
Run Code Online (Sandbox Code Playgroud)
它现在似乎工作,但事实并非如此.在视图中,我可以看到它的价值department_id.但是在数据库中,表没有列department_id,并且没有此列的值.
我的问题是:我如何存储department_id在数据库中?
笔记:
department_id,我设置了store=True,但它没有将该字段的值存储在数据库中.我做了一个测试.我添加compute_field类型Text,它的工作原理,我不知道为什么计算字段不适用于类型Many2One.
@api.depends('employee_id')
def _get_compute_field(self):
if self.employee_id.department_id:
self.compute_field = self.employee_id.department_id.name
compute_field = fields.Text(
string="Compute Field", store=True,
compute="_get_compute_field"
)
Run Code Online (Sandbox Code Playgroud)该store=True作品.可能是您在数据库上创建计算后将其添加到字段中.在这种情况下,不会触发初始计算.
解决方法是从表中删除列,然后升级模块.重新创建字段时,应计算初始值.
| 归档时间: |
|
| 查看次数: |
9650 次 |
| 最近记录: |