many2one 字段的 ondelete

no atction:相互不影响
cascade:主键被删除,外键对应的记录也删除。直接删除外键的记录,不影响主键。
restrict: 如果存在外键,主键删除的时候报错。
set null:主键被删除,外键变为空值。
set default:主键被删除,外键变为默认值。
以下代码报错500,帮我看一下是怎么回事,以下是源代码 # QA 检查项目分类 class pcsesQACheckType(models.Model): ''' 试验计划书/试验检查/原始数据和报告草稿 ''' _name = 'pcses.qa.check.type' _description = 'QA检查项目分类' _rec_name = 'name' active = fields.Boolean('Active', default=True) name = fields.Char('QA检查项目分类', required=True, index=True) is_qa_declaration = fields.Boolean('是否列入QA声明', required=False, index=True) sequence = fields.Integer('排序', required=False, index=True) # 描述 description = fields.Char('描述', required=False, index=True) # 是否列入QA声明 _sql_constraints = [('dec_name_uniq', 'unique(name)', '名称唯一')] class pcsesQARecord(models.Model): _name = 'pcses.qa.record' _description = 'QA试验检查记录' _rec_name = 'check_type' active = fields.Boolean('Active', default=True) # name = fields.Char('检查记录编号', required=True, index=True) # 检查项目分类 check_type = fields.Many2one('pcses.qa.check.type', string='QA检查项目', required=True, auto_join=True, ondelete='cascade') # 检查日期 char check_date = fields.Char('检查日期', required=True, index=True) # 检查人 check_person = fields.Many2one('hr.employee', string='QA检查人', required=True) check_content = fields.Text('检查发现', required=True, default='符合,无发现。') # 检查备注 check_remark = fields.Char('检查备注', required=False) # 报告日期 report_date = fields.Date('报告日期', required=False) # 反馈截至日期 feedback_deadline = fields.Date('反馈截至日期', required=False) # 所属试验项目 study_id = fields.Many2one('pcses.study', string='所属试验项目', required=True, auto_join=True, ondelete='cascade') # 现场试验检查 qa_study_check = fields.One2many('pcses.check.points.template.item', 'check_project_id', string='现场试验检查') # 试验日程分类 class pcsesStudyQACheckCategory(models.Model): _name = 'pcses.study.qacheck.category' _description = '试验检查分类' _rec_name = 'name' name = fields.Char(string='名称', required=True) desc = fields.Text(string='描述') _sql_constraints = [ ('name_uniq', 'unique(name)', '名称已存在!'), ] class pcsesCheckPointsTemplateItem(models.Model): _name = 'pcses.check.points.template.item' _description = '试验检查要点模板项' _rec_name = 'name' check_project_id = fields.Many2one('pcses.qa.record', string='试验项目', required=True, ondelete='cascade') # 预计检查日期 estimated_check_day = fields.Date(string='预计检查日期', required=True ,default=fields.Date.today()) # 试验内容 name = fields.Text(string='试验内容') #!!! 字段属性 !!! # 试验内容项 one2many 试验项目模板项明细 item_detail_ids = fields.One2many('pcses.check.points.template.item.detail', 'check_points_template_item_id', string='关键环节内容项') # pcses.study.qacheck.category category_id = fields.Many2one('pcses.study.qacheck.category', string='分类') sequence = fields.Integer(string='排序', required=True) # 试验检查要点模板项明细 class pcsesCheckPointsTemplateItemDetail(models.Model): _name = 'pcses.check.points.template.item.detail' _description = '试验检查要点模板项明细' _rec_name = 'check_point_item_id' check_points_template_item_id = fields.Many2one('pcses.check.points.template.item', string='试验检查要点模板项', required=True, ondelete='cascade') # 排序 sequence = fields.Integer(string='排序', required=True) # 检查要点安排项 check_point_item_id = fields.Many2one('pcses.check.item', string='检查要点安排项', required=True) result_contenxt = fields.Text(string='检查结果说明') # 检查要点安排项 class pcsesCheckItem(models.Model): _name = 'pcses.check.item' _description = '检查要点安排项' _rec_name = 'name' name = fields.Char(string='检查要点名称', required=True) # 分类 category = fields.Many2one('pcses.check.item.category', string='分类', required=True) desc = fields.Text(string='描述') _sql_constraints = [ ('name_uniq', 'unique(name)', '名称已存在!'), ] # 检查要点安排项分类 class pcsesCheckItemCategory(models.Model): _name = 'pcses.check.item.category' _description = '检查要点安排项分类' _rec_name = 'name' name = fields.Char(string='分类名称', required=True) desc = fields.Text(string='描述') _sql_constraints = [ ('name_uniq', 'unique(name)', '名称已存在!'), ]
05-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值