odoo 为双字段添加验证
odoo add validation for double field
我有这个 odoo py
class CrmProject(models.Model):
_name='crm.project'
customer_id = fields.Many2one('res.partner','Customer')
project_product_id = fields.Many2one('crm.project.product','Project Product')
当customer_id和project_product_id输入的值与crm.project数据库中的值相同时,如何验证并显示警告?因此必须首先检查数据库,然后如果它与 customer_id AND project_product_id 输入中的值相同,则显示警告。
例如:
Database table crm.project
customer_id = 1
project_product_id = 2
仅当输入时才会创建警告:
customer_id = 1
project_product_id = 2
除此之外不会创建任何警告
我试过了但没有创建警告(更新 25-04-2021)
@api.model
def create(self,vals):
vals['name'] = self.env['ir.sequence'].next_by_code('crm.project')
res = super(CrmProject,self).create(vals)
# Add code here
#res= super(CrmProject,self).create(vals)
customer_id = vals.get('crm.project.customer_id')
project_product_id = vals.get('crm.project.project_product_id')
get_customer_id = self.env['crm.project'].search([('customer_id','=',customer_id)])
get_project_product_id = self.env['crm.project'].search([('project_product_id','=',project_product_id)])
if get_customer_id and get_project_product_id:
raise UserError(_('The project has already been set before'))
else:
return res
如有帮助将不胜感激
您可以在数据库中创建约束:
create unique index name_your_constraint
on crm_project (customer_id, project_product_id);
我有这个 odoo py
class CrmProject(models.Model):
_name='crm.project'
customer_id = fields.Many2one('res.partner','Customer')
project_product_id = fields.Many2one('crm.project.product','Project Product')
当customer_id和project_product_id输入的值与crm.project数据库中的值相同时,如何验证并显示警告?因此必须首先检查数据库,然后如果它与 customer_id AND project_product_id 输入中的值相同,则显示警告。
例如:
Database table crm.project
customer_id = 1
project_product_id = 2
仅当输入时才会创建警告:
customer_id = 1
project_product_id = 2
除此之外不会创建任何警告
我试过了但没有创建警告(更新 25-04-2021)
@api.model
def create(self,vals):
vals['name'] = self.env['ir.sequence'].next_by_code('crm.project')
res = super(CrmProject,self).create(vals)
# Add code here
#res= super(CrmProject,self).create(vals)
customer_id = vals.get('crm.project.customer_id')
project_product_id = vals.get('crm.project.project_product_id')
get_customer_id = self.env['crm.project'].search([('customer_id','=',customer_id)])
get_project_product_id = self.env['crm.project'].search([('project_product_id','=',project_product_id)])
if get_customer_id and get_project_product_id:
raise UserError(_('The project has already been set before'))
else:
return res
如有帮助将不胜感激
您可以在数据库中创建约束:
create unique index name_your_constraint
on crm_project (customer_id, project_product_id);