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

I want to create a computed field, wich multiplies two different field values :

The first field value is on the current record.

The second field value is on another record (on the same model), and then should be searched, and retrieved, following some conditions.

(I'm trying to get two values for the same field, but on two different records, of course because the field value changes from a record to another)

Here is my code :


from openerp import models, fields, api
class SurveyUserInputLine(models.Model):
     _inherit = 'survey.user_input_line'
    percentage_row = fields.Float('Atteinte objectif', compute='_compute_percentage_row', store=True)
   
     @api.multi
    @api.depends('value_number','user_input_id','value_suggested_row','col_label')

     def _compute_percentage_row(self):
        for record in self:
            if record.col_label == 'Pondera':
                pond = record.value_number
                id_token = record.user_input_id.token
                row_value = record.value_suggested_row.id
                domain = [('col_label','=','Resultat'),('value_suggested_row.id','=', row_value),('user_input                 _id.token','=', id_token)]
                result = self.search(domain).value_number
                record.percentage_row = float(result*pond)/100

My problem is on the line in bold, it doesn't retrieve anything, the domain seems correct.

Maybe there is another way to achieve my query.

For further informations, it's on the survey_user_input_line object, and I'm trying to do the multiplication of two values but not on the same record.

Thanks for your help, I'm blocked ...

Avatar
Vazgeç
En İyi Yanıt
Hi,

Try replace the bold line with the following code :
result = self.env['survey.user_input_line'].search(domain)
if result :
result = result.value_number
else :
result = 0
Hope that answers the question.
Vote if you find it useful.
Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
0
Mar 15
4200
2
Eyl 23
9851
1
Şub 22
6869
2
Ara 19
6032
2
Tem 19
2970