1. Override the autocomplete controller in Python:
from odoo.addons.base.controllers.partner_autocomplete import PartnerAutocomplete
from odoo.http import route, request
class PartnerAutocompleteExtended(PartnerAutocomplete):
@route('/partner_autocomplete', type='json', auth="user")
def partner_autocomplete(self, **kwargs):
result = super().partner_autocomplete(**kwargs)
for partner in result.get('partners', []):
rec = request.env['res.partner'].sudo().browse(partner['id'])
partner['x_custom_field'] = rec.x_custom_field
return result
2. Extend the JS widget to use the custom field:
odoo.define('your_module.PartnerAutocompleteExtended', function (require) {
"use strict";
const FieldPartner = require('base.PartnerAutocompletion');
FieldPartner.include({
_parseResponseData(partner) {
const result = this._super(...arguments);
result.x_custom_field = partner.x_custom_field;
return result;
}
});
});
3. Load your JS in assets:
<template id="assets_backend" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/your_module/static/src/js/custom_partner_autocomplete.js"/>
</xpath>
</template>