OpenObject On Python. OpenERP python library
Switch branches/tags
Nothing to show
Pull request Compare This branch is 14 commits ahead, 6 commits behind lasarux:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Warning: this is a very initial release.

Contacting us:

Discussion group: openerp-ooop Post Issues on github: GITHUB Issues

How to install?


$ python install


$ jython install

Examples (python console):

Connecting to server

  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')

Pyro Protocol

  1. Install PyRO library (openerp-server and web client).
  2. Install PyRO Module OpenERP from Nan (thanks this contribution!)

  >>> o = OOOP(user='admin',pwd='admin',dbname='zikzakmedia',uri='localhost',port=8071,protocol='pyro')

Retrieving all from model

  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> o.ResPartner.all()

Retrieving 1 record from model

  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.get(1)

Accesing attributes

  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.get(1)
  >>> print

or in related objects:

  >>> print len(n.address) 
  >>> print n.address[0].name 

Deleting 1 record

  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.get(1)
  >>> n.delete()

Deleting multiple records

100 firsts

  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.all()
  >>> n[1:100].delete()


  >>> n.delete()


You can extend arguments using ne, lt, lte, gt, gte, like and ilike:

  >>> o.ResPartner.filter(name='Guido')
  >>> o.ResPartner.filter(name__ne='Guido')
  >>> o.ResPartner.filter(name__lt='Guido')
  >>> o.ResPartner.filter(name__lte='Guido')
  >>> o.ResPartner.filter(name__gt='Guido')
  >>> o.ResPartner.filter(name__gte='Guido')
  >>> o.ResPartner.filter(name__like='Guido')
  >>> o.ResPartner.filter(name__ilike='guido')
  >>> o.ResPartner.filter(id__in=[1,2,5,8])
  >>> o.ResPartner.filter(id__not_in=[1,2,5,8])

Creating new

  >>> n =
  >>> = 'Partner created with OOOP'

  >>> n ='Guido', active=True)

with related objects

To save all related objects of an object:

  >>> n =
  >>> = 'Partner created with OOOP'

  >>> addr =
  >>> addr.street = "Testing related objects"

  >>> n.address.append(addr)
  >>> n.save_all()

  >>> m = ['New Address', street='New Street', active=True)]
  >>> n ='Guido', address=m, active=True)
  >>> n.save_all()

Export Graph

Get a model graphviz file in dot, png, jpg or svg:

o.export(filename="file", filetype="dot", showfields=True, model="res.partner", deep=None)

or simply:

o.export("file", "png", False)

also you can do

o.ResPartner.export(filename="file", filetype="png", deep=0)

Also you can generate a jpg file (res.partner.jpg in the example) with just especific table definition


but if you want to get deep in the tables just need:


The deep param its relative to the model param, deep means how far you want to get with the relations.