Help

0

How to force uppercase fields - odoo 10

Avatar
medmars

Hi,

How to force uppercase fields Char ? odoo 10

Regards,

Avatar
Abbandona
5 Risposte
1
Avatar
Niyas Raphy
Migliore risposta

Hi,

Just do one thing, in the onchange of that field,

@api.onchange('field_name')
def set_upper(self):
    self.field_name = str(self.field_name).upper()
    return


Thanks

2 Commenti
Avatar
Abbandona
Avatar
Jake Robinson
-

Firstly, make sure you do a check if it is set:

self.field_name = str(self.field_name).upper() of self.field_name else ''

Without that it will set the field to "FALSE" if you delete the data in it.

If this field is set by an internal function the onchange won't be called, so if there's any reason this field will be edited by another function this is unsafe.

Avatar
medmars
-

Yeah it set empty field by FALSE so i'm try to add your code but it give me an error

0
Avatar
TECHQUK SAC
Migliore risposta
Esto te puede servir.
<field name="nombre" class="o_required_modifier" placeholder="Ex. Juan Mejia"/>nombre = fields.Char('Nombre', required=True)
@api.onchange('nombre')    
def solo_mayusculas(self):        
if self.nombre:                
 self.nombre = str(self.nombre).upper()       
else:           
 self.nombre = '' 
Avatar
Abbandona
0
Avatar
Jake Robinson
Migliore risposta

Hi

There's no default setting for this, to have it done properly you would need to hook the write method or make a widget.

A workaround is to add the following to the field definition in the view:

 style="text-transform: uppercase;"

This will change the rendering of the field to be uppercase, but it will still be stored as lowercase, so if you show it in another view without this style it will still be in lowercase.

Regards,
Jake Robinson
Dionysus Software

Avatar
Abbandona