跳至內容
選單
此問題已被標幟
1 回覆
5666 瀏覽次數

i will make condition end_date auto fill based selection field and start_date field

but have some error like this

File "...\Python\Python35\lib\site-packages\dateutil\relativedelta.py", line 393, in __radd__
    return self.__add__(other)
  File "...\Python\Python35\lib\site-packages\dateutil\relativedelta.py", line 351, in __add__
    raise TypeError("unsupported type for add operation")
TypeError: unsupported type for add operation

my py

from odoo import api, fields, models
from datetime import datetime, date, time
from dateutil.relativedelta import relativedelta
class LicenseID(models.Model):
_name = 'license.vehicle'
_inherit = 'ir.attachment'

name = fields.Selection([
('BPKB', 'BPKB'),
('STNK', 'STNK'),
('KIR', 'KIR'),
('UJI_EMISI', 'UJI EMISI'),
('KIU/SIPA/KKPKB', 'KIU/SIPA/KKPKB'),
('IBM', 'IBM'),
('STCK', 'STCK'),
('TNKB', 'TNKB')],
string='Document Name')
start_date = fields.Date(string='Start Date')
end_date = fields.Date(string='End Date')

@api.onchange('name', 'start_date')
def _change_date(self):
if self.name == 'STNK':
self.end_date = self.start_date + relativedelta(years=5)
self.end_date.strftime('%Y-%m-%d'),

can help me master ??



頭像
捨棄
最佳答案

Hello,

you should convert your start date (string type) into date type. (datetime.strptime)

For ref. see below code.

1) import libraries

from odoo.tools import DEFAULT_SERVER_DATE_FORMAT

from datetime import datetime


2) replace your method with this method in your code

                @api.onchange('name', 'start_date')

                def _change_date(self):

                    if self.name == 'STNK' and self.start_date:

                        date_start = datetime.strptime(self.start_date, DEFAULT_SERVER_DATE_FORMAT)

                        self.end_date = date_start + relativedelta(years=5)


Thanks,

Dipak


頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
1
1月 20
4715
1
8月 19
4091
0
8月 19
4380
1
6月 18
5054
0
5月 15
4911