Alas! Paladini del modello MVC... che lavoro ingrato
L'
estensione di un modello, così come come dice il termine, deve partire dal modello stesso, non dalla sua implementazione. Che importa se questo poi sia implementato su un DB Postgres, un MySql, un file di testo o un antico papiro egiziano... :-D la sto esagerando, ma il concetto è che apposta per questo è stato incapsulato attraverso l'ORM, per non doversene preoccupare.
Ad ogni modo Habemus many-to-many relationship
# -*- coding: utf8 -*-
# Global parameters
conn = {
'server_address': 'http://localhost:8069',
'username': 'admin',
'pwd': 'mypwd',
'dbname': 'mydb'
}
# Connessione a ERP
sock_common = xmlrpclib.ServerProxy (conn['server_address'] + '/xmlrpc/common')
uid = sock_common.login(conn['dbname'], conn['username'], conn['pwd'])
sock = xmlrpclib.ServerProxy(conn['server_address'] + '/xmlrpc/object')
conn.update({'sock': sock, 'uid': uid})
dbname, sock, uid, pwd = conn['dbname'], conn['sock'], conn['uid'], conn['pwd']
# Crea due categorie
#... non li creo qui, creali manualmente nel db
# Crea due partner
#... non li creo qui, creali manualmente nel db
nome_categoria_1 = 'Customer'
nome_categoria_2 = 'Prospect'
nome_partner_1 = 'Cliente1'
nome_partner_2 = 'Cliente2'
# Trova il partner
partner_id_1 = sock.execute(dbname, uid, pwd, 'res.partner', 'search', [('name', '=', nome_partner_1)])[0]
partner_id_2 = sock.execute(dbname, uid, pwd, 'res.partner', 'search', [('name', '=', nome_partner_2)])[0]
# Trova la categoria
category_id_1 = sock.execute(dbname, uid, pwd, 'res.partner.category', 'search', [('name', '=', 'Prospect')])[0]
category_id_2 = sock.execute(dbname, uid, pwd, 'res.partner.category', 'search', [('name', '=', 'Supplier')])[0]
print partner_id_1
print category_id_1
# Associa il partner_1 a entrambe le categorie
values = {'category_id':[(6, 0, [category_id_1, category_id_2])]}
results = sock.execute(dbname, uid, pwd, 'res.partner', 'write', partner_id_1, values)
# Associa il partner_2 a entrambe le categorie
values = {'category_id':[(6, 0, [category_id_1, category_id_2])]}
results = sock.execute(dbname, uid, pwd, 'res.partner', 'write', partner_id_2, values)
Così dovrebbe andare