2016-05-18 8 views
1

Ich habe zwei Felder wie unten gezeigt.verketten Datum und Uhrzeit in odoo 9.0

> appo_date = fields.Date(string="Appointment Date") 
> appo_time = fields.Float(string="Appointment Time") 

Ich muss diese beiden Felder verketten. Dafür habe ich eine Funktion wie unten beschrieben geschrieben.

def _combine(self, cr, uid, ids, field_name, args, context=None): 
     values = {} 
     for id in ids: 
      rec = self.browse(cr, uid, [id], context=context)[0] 
      values[id] = {} 
      values[id] = '%f - %f' % (rec.appo_date, rec.appo_time) 
     return values 

Und diese Funktion in einem separaten Feld aufgerufen, wie unten gezeigt.

appo_date_and_time = fields.Char(compute='_combine', string='Appointment Date/Time', arg=('appo_date','appo_time'), method=True) 

Diese Felder werden in XML-Dateien

<field name="appo_date"/> 
<field name="appo_time"/> 
<field name="appo_date_and_time"/> 

ich eine Störung erhalte als

TypeError: _combine() takes at least 6 arguments (5 given) 

Antwort

1

mit Odoo 9. mit neuen api Es ist also ratsam, üben Sie arbeiten genannt .

mit diesem Code Versuche:

@api.multi 
def _combine(self): 
    if self.appo_date and self.appo_time: 
     self.appo_date_and_time = '%f - %f' % (self.appo_date, self.appo_time) 
    elif self.appo_date: 
     self.appo_date_and_time = str(self.appo_date) 
    elif self.appo_time: 
     self.appo_date_and_time = str(self.appo_time) 
    else 
     self.appo_date_and_time = 'No Date and Time set' 
+0

danke .. aber ich habe DATE_FIELD (appo_date = fields.Date (string = "Termin Datum")), welchen Datentyp soll ich geben Datum –

+1

Datum Datentyp zu erhalten ist, funktioniert gut. Es fordert den Benutzer zur Eingabe des Datums auf. –

+0

Ja danke Odedra .. Es funktioniert –