odoo 通过数据库验证
odoo validate by database
我想在字段 customer_id 和 project_product_id 一起插入并检查数据库时进行验证,如果两者与数据库相同则显示错误
我的py代码是这样的
_name='crm.project'
customer_id = fields.Many2one('res.partner','Customer')
@api.multi
@api.constrains('customer_id','project_product_id')
def _check_total_value(self):
target_list = []
get_customer_id = self.customer_id
get_project_product_id = self.project_product_id
self.env.cr.execute('''
select *
from crm_project
where customer_id = %s
AND project_product_id = %s
''',(get_customer_id,get_project_product_id))
for target in self.env.cr.dictfetchall():
target_list.append(target)
if target_list:
raise Warning("data duplicate")
checked with the database and show error if both are the same with the database
那么你的数据库中显然需要一个 UNIQUE constraint。
请不要在你的python代码中检查这些东西 - 当你检查数据有效性时,有很多情况会出错客户端应用程序,但不在数据库级别。 More info.
我想在字段 customer_id 和 project_product_id 一起插入并检查数据库时进行验证,如果两者与数据库相同则显示错误
我的py代码是这样的
_name='crm.project'
customer_id = fields.Many2one('res.partner','Customer')
@api.multi
@api.constrains('customer_id','project_product_id')
def _check_total_value(self):
target_list = []
get_customer_id = self.customer_id
get_project_product_id = self.project_product_id
self.env.cr.execute('''
select *
from crm_project
where customer_id = %s
AND project_product_id = %s
''',(get_customer_id,get_project_product_id))
for target in self.env.cr.dictfetchall():
target_list.append(target)
if target_list:
raise Warning("data duplicate")
checked with the database and show error if both are the same with the database
那么你的数据库中显然需要一个 UNIQUE constraint。
请不要在你的python代码中检查这些东西 - 当你检查数据有效性时,有很多情况会出错客户端应用程序,但不在数据库级别。 More info.