Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
4 Odpovědi
9822 Zobrazení

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
Zrušit

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

Nejlepší odpověď

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
Zrušit
Nejlepší odpověď

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
Zrušit
Nejlepší odpověď

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

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
kvě 21
4054
1
led 18
9199
1
úno 17
5119
0
led 17
4364
0
pro 16
3005