Я хочу сделать простые SQL запросы к коллекциям Odoo.
Хотя использовать явный режим Odoo для извлечения данных очень просто:
from xmlrpc import client
from root import OD_URL
from root import OD_DB
from root import OD_USERNAME
from root import OD_PASSWORD
common = client.ServerProxy(f'{OD_URL}/xmlrpc/2/common')
models = client.ServerProxy(f'{OD_URL}/xmlrpc/2/object')
user_connection = common.authenticate(OD_DB, OD_USERNAME, OD_PASSWORD, {})
ids = models.execute_kw(OD_DB, user_connection, OD_PASSWORD, table_name, "search",
[[
]]
)
Я не нашел подходящего руководства для неявного метода (с sql запросами). Я вижу объяснения, подобные этому:
# retrieve data from product_product
result = self._cr.execute('select * from product_product')
или:
from openerp.osv import fields, orm, osv
class AccountVoucher(orm.Model):
def _get_selection(self, cr, uid, context):
partner = context.get('id_partner',[])
cr.execute("""SELECT num_bl FROM stock_picking WHERE state='done' and invoice_state='2binvoiced' and partner_id= %d""",(partner,))
return cr.fetchall()
, но еще раз, я не вижу, откуда берется модуль openerp, et c.
большое спасибо за вашу помощь