Library to access Tryton server as a client
Project description
A library to access Tryton’s models like a client.
Installing
See INSTALL
Example of usage
>>> from proteus import config, Model, Wizard
Creating a database
Configuration to connect to a sqlite memory database using trytond as module.
>>> config = config.set_trytond(':memory:', database_type='sqlite')
When connecting to a database that doesn’t exist, Proteus will create it.
Installing a module
Find the module, call the install button and run the install wizard.
>>> Module = Model.get('ir.module.module') >>> (party,) = Module.find([('name', '=', 'party')]) >>> Module.button_install([party.id], config.context) >>> Wizard('ir.module.module.install_upgrade').execute('start')
Creating a party
First instanciate a new Party:
>>> Party = Model.get('party.party') >>> party = Party() >>> party.id < 0 True
Fill the fields:
>>> party.name = 'ham'
Save the instance into the server:
>>> party.save() >>> party.name u'ham' >>> party.id > 0 True
Setting the language of the party
The language on party is a Many2One relation field. So it requires to get a Model instance as value.
>>> Lang = Model.get('ir.lang') >>> (en,) = Lang.find([('code', '=', 'en_US')]) >>> party.lang = en >>> party.save() >>> party.lang.code u'en_US'
Creating an address for the party
Addresses are store on party with a One2Many field. So the new address just needs to be appended to the list addresses.
>>> Address = Model.get('party.address') >>> address = Address() >>> party.addresses.append(address) >>> party.save() >>> party.addresses #doctest: +ELLIPSIS [proteus.Model.get('party.address')(...)]
Adding category to the party
Categories are linked to party with a Many2Many field.
So first create a category
>>> Category = Model.get('party.category') >>> category = Category() >>> category.name = 'spam' >>> category.save()
Append it to categories of the party
>>> party.categories.append(category) >>> party.save() >>> party.categories #doctest: +ELLIPSIS [proteus.Model.get('party.category')(...)]
Support
If you encounter any problems with Tryton, please don’t hesitate to ask questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
http://bugs.tryton.org/ http://groups.tryton.org/ http://wiki.tryton.org/ irc://irc.freenode.net/tryton
License
See LICENSE
Copyright
See COPYRIGHT
For more information please visit the Tryton web site: