odoo14:create方法的底层逻辑

create 方法是用于创建新记录的模型方法。其底层逻辑主要涉及以下几个步骤:
1创建一个新的记录对象(record)并将默认值设置为模型中定义的字段默认值。
2将传入的参数中的值赋值给记录对象中对应的字段。
3调用记录对象的 create 方法,该方法会将新记录插入到数据库中。
4如果在创建的数据中有password字段会自动将其加密,加密之后再写入到数据库中

class MyModel(models.Model):
    _name = 'my.model'
    name = fields.Char()
    description = fields.Text()

my_record = self.env['my.model'].create({
    'name': 'Test', 
    'description': 'record.',
    'password':'123456'
})

在上面的代码中,我们通过 env 属性获取了当前环境中的 my.model 模型,并调用了 create 方法来创建一条新的记录。传入的参数为一个字典,包含了我们想要设置的字段值。
在实际使用中,可能还需要进行一些额外的操作,如检查用户权限、验证输入数据的有效性等。

支持批量写入:
可以通过传入一个记录列表来一次性创建多条记录,例如:

my_records = self.env['my.model'].create([
    {'name': 'Record 1', 'description': 'Description 1'},
    {'name': 'Record 2', 'description': 'Description 2'}
    ])


支持创建自关联记录:如果模型中定义了自关联字段,可以在创建记录时通过该字段创建自关联记录,例如:

class MyModel(models.Model):
    _name = 'my.model'
    name = fields.Char()
    parent_id = fields.Many2one('my.model')

my_record = self.env['my.model'].create(
    {'name': 'Test', 'parent_id': my_parent_record.id}
)

你可能感兴趣的:(数据库,python,django,后端)