如何在自定義模塊odoo 9之前在數據庫中插入新記錄,檢查記錄是否存在?插入數據之前檢查計數odoo 9
例如:
如果表project.task我們的名字 「PARIS」 和date_deadline 「2017年1月1日」,在下面的代碼我需要警告之前執行...
vals = {'name': 'PARIS','date_deadline': '2017-01-01']}
create_new_task = http.request.env['project.task'].create(vals)
或者,也許嘗試從project.task獲得計數,其中name ='PARIS'和date_deadline ='2017-01-01',然後單擊按鈕保存!
任何簡單的解決方案?
@api.one
@api.constrains('date','time') #Time is Many2one
def _check_existing(self):
count = self.env['test.module'].search_count([('date','=',self.date),('time','=',self.time.id)])
print(self.date) #2017-01-01
print(self.time.id) #1
if(count >= 1):
raise ValidationError(_('DUPLICATE!'))
嘗試在數據庫,在那裏是日期= 2017年2月2日和時間插入新記錄= 1後,得到這個消息:
重複鍵值違反唯一約束「test_module_time_uniq」 詳細信息:按鍵(時間)=(1)已經存在。
時間存在但日期不同!我需要約束2值!在DATABSE我只有一個列在哪裏日期= 2017年1月1日和時間= 1
你對時間字段('test_module_time_uniq')定義的SQL唯一約束。你只需要刪除它,它應該工作。 – dgeorgiev