2017-07-03 4 views
1

Ich habe zwei Modell in meinem Orm, d. H. _service & _apple. Was ich will, ist, dass ich eine Aufzeichnung von _apple mit einigen Feldern erstellen möchte, die automatisch geschrieben werden. Als Beispiel können wir aus der Verkaufsbestellung eine Rechnung erstellen, und wenn eine Rechnung erstellt wird, werden einige der Rechnungsfelder automatisch genauso wie in der Verkaufsreihenfolge geschrieben.automatisch erstellen Datensatz eines anderen Modells beim Erstellen eines Datensatzes in einem Formular - Odoo 10

Was ich getan habe ist:

Mein Service Modell

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() 

Mein _apple Modell

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") 

Meine se.service Form:

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

Wenn ich tun wie unten: 1. Ich erstelle ein Formular in se.service. 2. Ich speichere das Formular. 3. Ich klicke create_apple button.

erwarte ich: 1. Eine Aufzeichnung automatisch in se.apple 2. Nehmen Sie erstellt haben apple_name, apple_description & apple_remarks automatisch erzeugt, wie ich in se.service gefüllt haben.

+0

Also, was ist das Problem? –

+0

Der Code, den ich geschrieben habe, funktioniert nicht. Ich möchte wissen, was ich vermisse oder wie ich eine Methode schreiben möchte, die auf meine Art funktioniert. –

+0

Haben Sie einen Fehler? –

Antwort

0

Sie haben den aktuellen Service-Datensatz in der Selbst, so können Sie es direkt verwenden. versuchen Sie diese aktualisierte Methode.

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 
Verwandte Themen