2016-05-18 6 views
1

私は以下のように2つのフィールドを持っています。odoo 9.0で日付と時刻を連結

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

この2つのフィールドを連結する必要があります。そのために私は以下のような関数を書いた。

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 

そして、この関数を以下のように別のフィールドで呼び出しました。

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

これらのフィールドは

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

xmlファイルで呼び出され、私はエラーを取得しています

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

答えて

1

としてあなたはOdoo 9で作業しているので、これは、新しいAPIで練習を行うことをお勧めします。

このコードを試してみてください。

@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

が..あなたに感謝しかし、私は(appo_date = fields.Date(文字列= "予定日を"))DATE_FIELDてきた私は、日付 –

+1

Dateデータ型を取得するために与えるべきデータ型ですうまく動作します。ユーザーに日付を入力するよう促します。 –

+0

ありがとうございますOdedra ..それは動作します –