第十六章 命令

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

results matching ""

    No results matching ""