Source code for openerp_proxy.orm.service
from ..service.object import ObjectService
from .object import get_object
__all__ = ('Service',)
[docs]class Service(ObjectService):
""" Service class to simplify interaction with 'object' service.
Particulary, implements logic of choosing execute
method ('execute' or 'execute_kw') to use.
The last one cannot work with keyword arguments
"""
def __init__(self, *args, **kwargs):
super(Service, self).__init__(*args, **kwargs)
self.__objects = {} # cached objects
[docs] def get_obj(self, object_name):
""" Returns wraper around Odoo object 'object_name'
which is instance of Object
:param object_name: name of an object to get wraper for
:type object_name: string
:return: instance of Object which wraps choosen object
:rtype: Object
"""
if object_name in self.__objects:
return self.__objects[object_name]
if object_name not in self.get_registered_objects():
raise ValueError("There is no object named '%s'" % object_name)
obj = get_object(self, object_name)
self.__objects[object_name] = obj
return obj
[docs] def clean_cache(self):
""" Cleans caches, to fill them with fresh data
on next call of related methods
"""
super(Service, self).clean_cache()
self.__objects = {}