İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
7171 Görünümler

At first I thought this would be easy, since it's not a big deal. I'll go straight to the problem.

def verify_service(self, cr, uid, ids, context=None):
    record = self.browse(cr, uid, ids)[0]
    rec_value = record.nr_service
    cr.execute("SELECT nr_service FROM services WHERE nr_service = %s", (rec_value,))
    values = cr.fetchall()
    if not values: # It means the database has NO value
        return True # continues to save the Form
    else: 
        return False # If there's any value with the value of the field "rec_value" it returns error!

_columns = {
        'nr_service':fields.integer('Nr. Service', size = 30, required = True),

_constraints = [
                    (verify_service, 'Error: Already that ID in the database!', ['nr_service']),

Isn't this so simple? But no matter what value I put inside the 'nr_service' field, it displays always the constraint message. What am I doing wrong?

Avatar
Vazgeç
Üretici En İyi Yanıt

Solved.

def verify_service(self, cr, uid, ids, context=None):
    record = self.browse(cr, uid, ids)[0]
    rec_value = str(record.nr_service)
    cr.execute("SELECT COUNT(*) FROM services WHERE nr_service = %s", [rec_value])
    values = cr.fetchone()
    if values[0] <= 1:
        return True
    return False
Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
0
Mar 15
4861
@api.constrains Çözüldü
2
Ara 23
3140
0
Eyl 23
6133
0
Haz 21
2587
1
Kas 20
4380