Created
August 17, 2018 17:52
-
-
Save yasmanycastillo/215040e2792809b58e16484540981bf1 to your computer and use it in GitHub Desktop.
Odoo external api
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import xmlrpc.server as Server | |
import ssl | |
class Utils(object): | |
def __init__(self, host, db_name, user, password): | |
ssl.match_hostname = lambda cert, hostname: True | |
self._host = host | |
self._db = db_name | |
self._user = user | |
self._pwd = password | |
common = Client.ServerProxy('{}/xmlrpc/2/common'.format(self._host), allow_none=True) | |
self._uid = common.authenticate(self._db, self._user, self._pwd, {}) | |
self._server = Client.ServerProxy('{}/xmlrpc/2/object'.format(self._host), allow_none=True) | |
def search(self, model, domain): | |
result = self._main_server.execute_kw( | |
self._db, self._uid, self._pwd, model, 'search', [domain]) | |
return result | |
def search_read(self, model, domain, list_of_fields, limit=False): | |
result = self._main_server.execute_kw( | |
self._db, self._uid, self._pwd, model, 'search_read', [domain], | |
{'fields': list_of_fields, 'limit': limit}) | |
return result | |
def create(self, model, vals): | |
result = self._main_server.execute_kw( | |
self._db, self._uid, self._pwd, model, 'create', [vals]) | |
return result | |
def write(self, model, id, vals): | |
result = self._main_server.execute_kw( | |
self._db, self._uid, self._pwd, model, 'write', [id, vals]) | |
return result | |
""" | |
Como usar los metodos | |
partner_id = self.create('res.partner', {'name': 'Odoo Dominicana'}) -> Devuelde el id del nuevo record | |
partner_id = self.search('res.partner', [('name', '=', 'Odoo Dominicana')]) -> Devuelve una lista con los registros encontrados | |
products = self.search_read('product.product', [('default_code', '=', 'TR-5262')], ['name', 'default_code', 'qty_available', 'active']) -> Devuelve una lista de diccionarios | |
product_id = self.write('product.product', [2568], {'default_code': 'TR-5684'}) -> Devuelve una lista con el id | |
""" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment