在openerp中继承数据

2024-04-16 21:17:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码将现有数据从一个窗体继承到另一个窗体

xml: <field name = "res_model">lis.lab</field> 
python: _inherit="lis.lab"

在实验室实验室是第一种形式。我只在这里输入信息和保存。 测试实验室是另一种形式。这里我已经完成了在这里显示的记录(测试实验室)在树状图中使用以上两行单击。但它只有退出场测试实验室“形式。它不会以第二种形式显示新字段(测试实验室). 在

xml

^{pr2}$

Python

from osv import osv
from osv import fields

class cus(osv.osv):
 _name = "lis.lab"
 _description = "This table is for keeping lab data of cord blood"
 _columns = {
    'name': fields.char('Lab Id',size=20,required=True),
    'customer_name': fields.many2one('res.partner', 'Customer Name', domain=[('customer', '=', True)]),
    'customer_city': fields.char('City', size=20),
    'customer_email': fields.char('Email', size=20),
    'customer_mobile': fields.char('Mobile', size=20),
    'sam': fields.char('Sample', size=64),
    'sam1': fields.char('Sample1', size=64)
 }
 def on_change_customer(self, cr, uid, ids, customer_name, context=None):
  values = {}
  if customer_name:
   cust = self.pool.get('res.partner').browse(cr, uid, customer_name, context=context)
   values = {
    'customer_city': cust.city,
    'customer_email': cust.email,
    'customer_mobile': cust.mobile
   }
  return {'value' : values}

class test(osv.osv):
 _name = "test.lab"
 _inherit = "lis.lab"
 _description = "Lab Result"
 _columns = {

 }
 def on_change_labid(self, cr, uid, ids, name, context=None):
  values = {}
  if name:
   custinfo = self.pool.get('lis.lab').browse(cr, uid, name, context=context)
   values = {
   }
  return {'value' : values}

Tags: nameselffieldsuidsizecontextlabcustomer
1条回答
网友
1楼 · 发布于 2024-04-16 21:17:41

使用类继承来实现您的目标。

您正在使用通过原型化OpenERP的概念来继承。名字在哪里!=\u继承。因此,在超类表上操作的视图或树永远不会看到子类的新实例。在

要在子类视图中显示超级类的实例,需要使用类继承其中_name=\u inherit。其中子级继承其父级的数据(字段)和行为(函数)。在

相关问题 更多 >