如何使用Odoo中的方法设置默认值?

Jay*_*kat 10 python default-value python-2.7 odoo odoo-8

如何在Odoo 8 models.py中的对象字段中计算默认值的值

我们不能_default再在Odoo 8中使用该属性了.

field_name = fields.datatype(
    string=’value’, 
    default=compute_default_value
)
Run Code Online (Sandbox Code Playgroud)

在上面的字段声明中,我想调用一个方法来为该字段分配默认值.例如:

name = fields.Char(
    string='Name', 
    default= _get_name()
)
Run Code Online (Sandbox Code Playgroud)

Che*_*uCR 20

你可以使用这样的lambda函数:

name = fields.Char(
    string='Name',
    default=lambda self: self._get_default_name(),
)

@api.model
def _get_default_name(self):
    return "test"
Run Code Online (Sandbox Code Playgroud)

  • 是的,但如果您想遵循[OCA指南](https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md#field)并遵循de约定,您可以检查"字段声明" "总是高于"默认方法".如果您按照自己在帖子中所写的方式声明函数,那么就不能这样做 (3认同)

Dan*_*eis 15

@ChesuCR答案的简单版本:

def _get_default_name(self):
    return "test"

name = fields.Char(
    string='Name',
    default=_get_default_name,
)
Run Code Online (Sandbox Code Playgroud)