How to set default values with methods in Odoo?

Jay Venkat picture Jay Venkat · Jul 23, 2015 · Viewed 22.6k times · Source

How to compute the value for default value in object fields in Odoo 8 models.py

We can't use the _default attribute anymore in Odoo 8.

field_name = fields.datatype(
    string=’value’, 
    default=compute_default_value
)

In the above field declaration, I want to call a method to assign default value for that field. For example:

name = fields.Char(
    string='Name', 
    default= _get_name()
)

Answer

ChesuCR picture ChesuCR · Jul 23, 2015

You can use a lambda function like this:

name = fields.Char(
    string='Name',
    default=lambda self: self._get_default_name(),
)

@api.model
def _get_default_name(self):
    return "test"