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

Hi all,

I intend to make 

annual_dateofbirth=fields.Date('Nächster Geburtstag', compute='_calc_annual_dob',store=True)

available as Filter. I set stored=True to make it available as Field within Filter. However, it Needs to be recalculated on each page load. Thats why I introduced a second field current_date. 

current_date=fields.Date('Aktuelles Datum', compute='_calc_current_date')


@api.depends('current_date')
def _calc_current_date(self):
for rec in self:
rec.current_date = date.today()

@api.depends('current_date')
def _calc_annual_dob(self):
for rec in self:
if rec.birthday:
today = date.today()
dob = rec.birthday.replace(year=today.year)

if parsed < today:
dob= dob.replace(year=today.year + 1)

rec.annual_dateofbirth=parsed.strftime("%Y-%m-%d")


However, _calc_annual_dob is only executed when the field is changed in the form, not on page reload.

I appreciate any hint!

Regards,

Matthias


頭像
捨棄
最佳答案

Hi,

By default, a computed field is not stored in the database and is computed on-the-fly. Adding the attribute store=True will store the field’s values in the database. The advantage of a stored field is that searching on that field is done by the database itself. The disadvantage is that it requires database updates when the field must be recomputed.


Thanks

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
1
4月 24
1315
2
3月 24
1929
2
11月 19
6801
1
5月 19
3783
2
4月 18
12512