odooでapi.constrainを使用しようとしました。場合は、ユーザーが1つのフィールドを欠落している場合はodooに条件を与えたい、odooは警告のような警告を与え、ユーザーは前のフィールドに入力を与えなければならない。これは私のコードです:api.constrainフィールドの1つが空の場合に条件を指定する
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を置いてみました。結果は同じです。
とtryブロックを使用して例外であなたのエラーを発生させて、もう一度あなたのコードを呼び出します関数呼び出しを通してブロックを除いて – Gahan