I'm trying to override the function dispatch_rpc located in odoo>odoo>service>__init__.py
by using the monkeypatch method.
this is the new definition of the function
# -*- coding: utf-8 -*-
from . import common
import odoo
import threading
from odoo import service
def dispatch_rpc(service_name, method, params):
""" Handle a RPC call.
This is pure Python code, the actual marshalling (from/to XML/JSON)
is done in a upper layer.
"""
threading.current_thread().uid = None
threading.current_thread().dbname.dis = None
if service_name == 'common':
dispatch = odoo.addons.common.dispatch
elif service_name == 'db':
dispatch = odoo.service.db.dispatch
elif service_name == 'object':
dispatch = odoo.service.model.dispatch
return dispatch(method, params)
service.dispatch_rpc = dispatch_rpc
the probleme is that the new definition of dispatch_rpc is not taken into consideration.
and I get just the behavor of the old definition.
Thanks in advance,
youel
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Contabilità
- Magazzino
- PoS
- Project
- MRP
La domanda è stata contrassegnata
2
Risposte
3611
Visualizzazioni
Hi,
Try referring the blog on how to apply MonkeyPatching in odoo 16:https://www.cybrosys.com/blog/what-is-monkey-patching-and-how-it-can-be-applied-in-odoo-16
Hope it helps
change new fonction name
for exemple
service.dispatch_rpc = dispatch_rpc_new
not necessarily. he can keep the same name.
Ti stai godendo la conversazione? Non leggere soltanto, partecipa anche tu!
Crea un account oggi per scoprire funzionalità esclusive ed entrare a far parte della nostra fantastica community!
RegistratiPost correlati | Risposte | Visualizzazioni | Attività | |
---|---|---|---|---|
|
5
set 25
|
22298 | ||
|
3
ago 25
|
3263 | ||
|
1
mag 25
|
3115 | ||
|
1
apr 25
|
4089 | ||
|
1
apr 25
|
4951 |
Hi,
firstly, did you check that the server reads your file ? you can add print('====') before your function def dispatch_rpc() and then watch odoo logs to see if displayed.
I think this is probably the issue: your file is not read.
yes the server read my file .
I already checked that by using print("===============") before the function.
yes the server read my file .
I already checked that by using print("===============") before the function.