Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
6169 Lượt xem

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


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 4 24
1307
2
thg 3 24
1896
2
thg 11 19
6752
1
thg 5 19
3768
2
thg 4 18
12500