第十六章 命令
Populate
populate命令用来自动生成测试数据,在我们需要进行测试的时候免去了手动新增测试数据的问题。
populate命令接收两个参数:
- --size: 生成的数据集大小,可选项: small、medium、large
- --models: 需要被填充数据的模型名称,可以接收多个,以逗号分隔
默认的数据大小:
- small: 10
- medium: 100
- large: 1000
用户可以根据自己的需要调整数据大小的定义。
class wechat_app(models.Model):
_name = "wechat.app"
_description = "微信小程序配置"
_populate_sizes = {'small': 10, 'medium': 20, 'large': 100}
...
自定义完数据大小之后,我们需要使用_populate_factories工厂方法给我们的模型填充测试数据,odoo在tools工具箱中提供了一个popluate的工具包含一系列自动生成的工具。
def _populate_factories(self):
return [
("name",populate.constant("测试 {counter}"))
]
这里我们只对name字段做了填充,运行之后数据库中将自动生成10个小程序的记录。
populate 工具
populate的工具主要有如下几个:
- cartesian:尽可能保留更多备选项的随机取数。
- randomize:伪随机地从备选项中选择。
- compute: 使用函数生成备选项
- constant:使用格式化的字符串
- randint(a,b): 使用a和b之间的随机数
scaffold
我们在一开始的时候就已经使用过脚手架了, 现在我们来一下如何做一个自己版本的脚手架.首先,我们要清楚,scaffold命令可以指定一个特定的模块模板, 不一定非得是官方的, 命令格式如下:
odoo scaffold -t mommy mommy_partner
即使用-t参数指定模板名称或者路径.
默认的模板路径位于 /odoo/cli/templates