Connessione e autenticazione

Prima di accedere a un modello è necessario istanziare un oggetto Model ed eseguire l’autenticazione utilizzando utente e password.

Si prega di fare riferimento alla pagina autenticazione.


Leggere dati da un modello

È possibile leggere i dati da un oggetto Model utilizzando i metodi get o get_many.

Un record singolo può essere letto usando il metodo get:

partner = model_partner.get(entity_id=2)

Record multipli possono essere letti usando il metodo get_many:

partners = model_partner.get_many(entity_ids=(2, 3, 4))

Leggere dati da un altro modello

Da qualsiasi modello è possibile ottenere un riferimento a un modello differente utilizzando il metodo get_model senza dover fornire server, database, utente e password.

model_countries = model_partner.get_model(model_name='res.country',
                                          authenticate=True)
country = model_countries.get(entity_id=10)

Leggere tutti i dati da un modello

In caso di necessità di leggere tutti i dati da un’istanza Model è possibile usare il metodo all:

countries = model_countries.all()

Limitare il numero di campi restituiti

Alcuni metodi consentono di specificare un argomento fields per limitare il numero di campi restituito per ciascun record, riducendo la quantità di dati trasferiti. Il campo chiamato id sarà sempre restituito.

partners = model_partner.get_many(entity_ids=(2, 3, 4),
                                  fields=('name', 'country', 'lang')) 
pprint.pprint(partners)

Restituirà soltanto i campi selezionati:

[{'country_id': [110, 'Italy'], 'id': 2, 'lang': 'it_IT', 'name': 'OdooBot'},
 {'country_id': [110, 'Italy'], 'id': 3, 'lang': 'en_GB', 'name': 'Admin'},
 {'country_id': False, 'id': 4, 'lang': 'it_IT', 'name': 'default user'}]

Lo stesso può essere applicato ad altri metodi:

countries = model_countries.all(fields=('id', 'name'))

Creare un nuovo record

Per creare un nuovo record è possibile semplicemente passare i valori desiderati con un oggetto dizionario al metodo create.

new_partner_id = model_partner.create(values={'name': 'Muflone',
                                              'lang': 'en_GB',
                                              'country_id': 110})

Aggiornare record esistenti

È possibile aggiornare uno o più record assieme utilizzando un oggetto dizionario con i nuovi valori e il metodo update.

model_partner.update(new_partner_id, values={'country_id': 50})

Cancellare i record esistenti

Per rimuovere alcuni record è possibile usare il metodo delete.

model_partner.delete(new_partner_id)