@api.model_create_multi
@api.returns('self', lambda value: value.id)
def create(self, vals_list):
# 比较一下 在创建的时候: 一个后台创建,一个导入 vals_list的不同
# 根据不同,解决两个的差异,客户不需要导入id,之需要输入学号就可以生成一个id
# 创建空数据集
stu_all=self.browse()
for record in vals_list:
student_number = record.get('student_number')
# 查询导入数据中是否有学号
if student_number:
# 获取 学生记录
stu = self.env['res.partner'].sudo().search([('student_number', '=', student_number)])
# 判断学号是否正确
if stu.exists():
# 拿到id, 放入record中
stu.write(record)
# 拼接数据集
stu_all+=stu
# 把record从vals_list中删除掉
vals_list.remove(record)
else:
raise ValidationError(f'该学号: {student_number} 不存在!')
if vals_list:
# 获取要创建的数据集
stu_new = super(Student, self).create(vals_list)
# 拼接数据集
stu_all += stu_new
# 返回数据集
return stu_all
odoo 自带的模块 使用create()导入和更新
最新推荐文章于 2025-05-20 18:28:23 发布