1

阅读 Tryton 的代码模块,我遇到了很多这种方法,但我没有弄清楚这是为了什么。

Tryton中这个函数有什么用?

@classmetod
def __register__(cls,module_name):
    TableHandler = backend.get('TableHandler')
    cursor = Transaction().cursor
    table = TableHandler(cursor,cls,module_name)
    super(Adress,cls).__register__(module_name)
    table.not_null_action('sequence', action='remove')
4

1 回答 1

1

每次更新模型时都会调用 __register__方法,用于改变当前模块的数据库结构。通常 tryton 会为您创建所有缺少的字段(这是在ModelSQL类上完成的),但某些操作无法自动检测到,因此您必须为其编写迁移。这是在模型的__register__方法上完成的。

您复制的代码确保序列字段可以为空,如果不是,它会将列从空更改为非空。

于 2014-08-26T16:16:44.490 回答