2017-07-03 15 views
1

私のormには2つのモデルie _service & _appleがあります。私が欲しいのは、自動的に書かれたいくつかのフィールドを持つ_appleのレコードを作成したいということです。例として、販売注文から請求書を作成することができ、請求書が作成されると、請求書のフィールドのいくつかは、自動的に販売注文と同じように記録されて生成されます。私がやっていること1つのフォームでレコードを作成中に別のモデルのレコードを自動作成 - 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.録音中に作成されたレコードは、私がse.serviceに埋めてきたようapple_name、apple_description & apple_remarksが自動的に生成されます。

+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 
関連する問題