an abundance of strawberries

Odoo module upgrades, done for you

Your module uses name_get(), which newer Odoo replaced

Around Odoo 17, the name_get() method was replaced by a computed _compute_display_name. Custom models that overrode name_get() stop showing the right display names until they're migrated.

The migration pattern

Before (Odoo 16 and earlier):

def name_get(self):
    result = []
    for record in self:
        result.append((record.id, f"{record.code} — {record.name}"))
    return result

After (Odoo 17+):

@api.depends("code", "name")
def _compute_display_name(self):
    for record in self:
        record.display_name = f"{record.code} — {record.name}"

The gotcha is the @api.depends: get it wrong and display names go stale after edits instead of erroring, which is worse — nobody notices until a customer does. Search-by-name overrides (_name_search) often need touching at the same time.

Send us the module. We port it to the new pattern, install, and test. Try it live, then $50 to download.

Try the working result before you pay a cent. No signup to get started.

Common questions

What replaced name_get() in Odoo?

A computed field method, _compute_display_name, populating the display_name field.