Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
4 Replies
9161 Tampilan

I am trying to enter value in read only field , it is value changed no problem but when I save date it's value not changed . 

How can I make it?

Avatar
Buang

By default you're not allowed to save data in readonly fields, that is the whole purpose of the field.

Jawaban Terbai

Hello

I hope below code will help you

In my case have Total year field is readonly and based on 'Date of birth' Total year will be update

Using onchange method, Can get Total year on field but when save that record Total Year field to set blank

Solution:-

Create new dummy field of total year and set that dummy field value on original field

Example:-

Python file

total_year = fields.Float()

total_year_copy = fields.Float()

from datetime import date​​

# Onchange method

@api.onchange('dob')
def onchange_dob(self):
today = date.today()
self.total_year = self.total_year_copy = today.year - dob.year - ((today.month, today.day) < (dob.month, dob.day))

# Create method

@api.model

def create(self, vals):

if 'total_year_copy' in vals:

vals.update({'total_year': vals.get('total_year_copy')})

return super(Project, self).create(vals)

# Write method

@api.multi

def write(self, vals):

if 'total_year_copy' in vals:

vals.update({'total_year': vals.get('total_year_copy')})

return super(Project, self).write(vals)

Xml File

<field name="total_year" readonly="1"/>

<field name="total_year_copy" invisible="1"/>

Hope this help you to save readonly records

Best Regards,

Ankit H Gandhi

Avatar
Buang
Jawaban Terbai

Mohammed,

By design, the readonly field's value will not be sent out to the server from the client.

If your readonly field is functional field, its value will be automatically stored on screen. If its storable function field, you must make sure to write the right method to calc its value.

If your fieldis not functional, you should work around by onchange and set one invisible field to hold the value of the readonly field. Or, use write well.

Thanks.

Avatar
Buang
Jawaban Terbai

Hi,   maybe with using a functional field and set store=True in field option!

Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
1
Mei 21
3359
1
Jan 18
8433
1
Feb 17
4482
0
Jan 17
3866
0
Des 16
2521