我試圖在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