作为客户端访问tryton服务器的库

proteus的Python项目详细描述


像访问客户一样访问Tryton模型的库。

用法示例

>>> from proteus import config, Model, Wizard, Report

配置

使用trytond作为模块连接到sqlite内存数据库的配置。

>>> config = config.set_trytond('sqlite:///:memory:')

安装模块

找到模块,调用激活按钮并运行升级向导。

>>> Module = Model.get('ir.module')
>>> party_module, = Module.find([('name', '=', 'party')])
>>> party_module.click('activate')
>>> Wizard('ir.module.activate_upgrade').execute('upgrade')

创建派对

第一次创建新的派对:

>>> Party = Model.get('party.party')
>>> party = Party()
>>> party.id < 0
True

填写字段:

>>> party.name = 'ham'

将实例保存到服务器:

>>> party.save()
>>> party.name
'ham'
>>> party.id > 0
True

设置党的语言

当事人的语言是一个关系域。所以它需要 模型实例作为值。

>>> Lang = Model.get('ir.lang')
>>> en, = Lang.find([('code', '=', 'en')])
>>> party.lang = en
>>> party.save()
>>> party.lang.code
'en'

为当事人创建地址

地址存储在带有one2many字段的party上。所以新地址只是 需要附加到列表地址

>>> address = party.addresses.new(zip='42')
>>> party.save()
>>> party.addresses #doctest: +ELLIPSIS
[proteus.Model.get('party.address')(...)]

将类别添加到party

类别链接到具有多个字段的party。

因此,首先创建一个类别

>>> Category = Model.get('party.category')
>>> category = Category()
>>> category.name = 'spam'
>>> category.save()

将其附加到参与方的类别中

>>> party.categories.append(category)
>>> party.save()
>>> party.categories #doctest: +ELLIPSIS
[proteus.Model.get('party.category')(...)]

地址排序和注册顺序

地址按顺序排列,这意味着它们可以按照 具体顺序。set_sequence方法存储当前顺序。

>>> address = party.addresses.new(zip='69')
>>> party.save()
>>> address = party.addresses.new(zip='23')
>>> party.save()

现在改变顺序。

>>> reversed_addresses = list(reversed(party.addresses))
>>> while party.addresses:
...     _ = party.addresses.pop()
>>> party.addresses.extend(reversed_addresses)
>>> party.addresses.set_sequence()
>>> party.save()
>>> party.addresses == reversed_addresses
True

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将特定于语言环境的字符串转换为BigDecimal的最佳方法   java生成的数字在下降的水平上增加   java如何验证列表中的元素是否按字母顺序排序   java无法使用Jintellitype包com。梅洛器皿   java Hibernate显示来自JComboBox的记录   java更改模拟器屏幕分辨率?   java如何从可移动/辅助SD卡中删除文件   java检查在MySQL中插入时数据库中是否存在给定的用户名   java如何替换线程。无限循环中的sleep()?   java如何从数据库中获取一列的字符串数据作为数组数据   将内容存储在缓冲区中的java   java ControllerAdvice不处理引发的异常   Java Maven问题   java NullPointerException试图从方法返回2D对象数组时   这个简单的Java代码有什么问题?   java如何删除或访问pom文件中插件的构建时间戳   java销售收据,多选(if/else),while循环,客户更改选择的能力   Java:基于字符串的加载类方法   java OrientDB服务器部分忽略OrientDB_HOME