我试图在odoo中使用api.constrain。这种情况是,我想给odoo提供条件,如果用户缺少一个字段,odoo会发出警告等警告,并且用户必须对前一个字段进行一些输入。这是我的代码:api.constrain为条件,如果其中一个字段为空
class Provinc(models.Model):
_name = 'provinsi.model'
_rec_name ='prov'
prov = fields.Char(
string='Provinsi',
)
res_partner_ids = fields.One2many(
'res.partner',
'provinsi'
city_id = fields.One2many(
'city.model',
'provinsi_id'
)
class city(models.Model):
_name = 'kota.model'
_rec_name ='city'
city = fields.Char(
string='City',
)
res_partner_city = fields.One2many(
'res.partner',
'city'
)
provinsi_id = fields.Many2one(
'provinsi.model',
string='provinsi',
)
class Master_data(models.Model):
_inherit = 'res.partner'
provinsi = fields.Many2one(
'provinsi.model',
'provinsi',
)
city = fields.Many2one(
'city.model',
'city',
)
@api.onchange('provinsi')
def show_provinsi(self):
return {'domain': {'city': [('provinsi_id', '=', self.provinsi.id)]}}
@api.constrains('provinsi')
@api.onchange('city')
def show_kota(self):
for record in self:
if record.provinsi == False:
raise ValidationError("is gonna be error")
我试过2种方法。首先,我把api.constrain insode类City放到了这里,但它不起作用,我尝试的第二种方法是将类似代码的api.constrain放在class master中,结果保持不变。
作出必要的所有领域,并使用try块和异常提高你的错误,并再次调用代码通过函数调用除外块 – Gahan