2017-07-03 94 views
1

我有两个模型在我的orm,即_service & _apple。我想要的是我想创建自动写入的字段的_apple记录。例如,从销售订单我们可以创建发票,并且在创建发票时,发票的某些字段会自动生成为与销售订单中相同的记录。自动创建另一个模型的记录,同时创建一个记录的形式 - Odoo 10

我所做的是:

我的服务模式

class _service(models.Model): 
_name = 'se.service' 
_rec_name = "service_name" 

name = fields.Char(
    'Reference', copy=False, readonly=True, default=lambda x: _('New')) 
service_name = fields.Char("Service Name", required=True) 
service_department = fields.Many2one('hr.department', "Department Name", required=True, help="Department Name of employee") 
service_description = fields.Text("Description", required=True) 
service_remarks = fields.Text("Remarks") 
service_methodology = fields.Html(string="Methodology") 
service_id = fields.One2many('se.objective', 'service_id', string="Objectives", required=True) 

@api.model 
def create(self, valuees): 
    if valuees.get('name', _('New')) == _('New'): 
     valuees['name'] = self.env['ir.sequence'].next_by_code('se.service') or _('New') 
    return super(_service, self).create(valuees) 

def _create_apple(self): 
    inv_obj = self.env['se.apple'] 
    self.ensure_one() 
    se = _service 
    invoice = inv_obj.create({ 
     'apple_name': se.service_name, 
     'apple_description': se.service_description, 
     'apple_remarks': se.service_remarks 
    }) 
    return invoice 


def create_apple(self): 
    self._create_apple() 

我_apple型号

class _apple(models.Model): 
    _name = 'se.apple' 

    apple_name = fields.Char("Apple Name") 
    apple_description = fields.Text("Remarks Apple") 
    apple_remarks = fields.Text("Remarks Apple") 

我se.service形式:

<header> 
    <button name="create_apple" string="Create Apple" type="object" class="btn-primary"/> 
</header> 

如果我这样做如下: 1.我在se.service中创建一个表单。 2.我保存表格。 3.我点击create_apple按钮。

我想到: 1. se.apple 2.记录自动创建的记录将有apple_name,apple_description & apple_remarks为我填补了se.service自动生成。

+0

那么,什么问题? –

+0

我写的代码不起作用。我想知道我错过了什么,或者我想要的方式来编写实际上以我的方式工作的方法。 –

+0

您有任何错误? –

回答

0

你有自己的当前服务记录,所以你可以直接使用它。 试试这个更新的方法。

def _create_apple(self): 
     inv_obj = self.env['se.apple'] 
     self.ensure_one() 
     invoice = inv_obj.create({ 
      'apple_name': self.service_name, 
      'apple_description': self.service_description, 
      'apple_remarks': self.service_remarks 
     }) 
     return invoice 
相关问题