Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
6 Răspunsuri
12508 Vizualizări

i want to change the value of the field (name) of the model(categ.age) based on the value of the field (age) that belongs to the modele(mod.age) 

i declared a One2many relation between the models like the code bellow and i used a related field but the value still not take in consideration the changing value 

                class age(models.Model):

                _name = "mod.age"

                category = fields.Many2one('categ.age', 'group of age')

                name_test = fields.Char(compute="set_age_group", related='category.name')

                age = fields.Integer('Age')


              @api.depends('age')

              def set_age_group(self):

                    if self.age < 20:

                        self.name_test = 'type2'

                   else:

                       self.name_test = 'type3'


             class cat_age(models.Model):

             _name = "categ.age"

             _description = "group of age"

            name = fields.Char(string="Name of categorie", store=True, readonly=False)

            other_field = fields.Char(string="other_field")



Imagine profil
Abandonează

Hope this will helps you in future: http://learnopenerp.blogspot.com/

Autor

hello sehrish, are you puting the wrong link ? cuz i don't see in which that could be helpfull

Autor

Thanks Alejandro Aladro, but that still not resolve the probleme

Cel mai bun răspuns

Hi!

You can do like the following code, it's just a suggestion, you can adapt it as you need:

class Age(models.Model):
    _name = "mod.age"
    _rec_name = "age"
   
    age = fields.Integer('Age')
    category_id = fields.Many2one('categ.age', 'Group of age')
   
    @api.onchange('age')
    def onchange_age(self):
        self.category_id.name = 'type2' if self.age < 20 else 'type3'

class Category(models.Model):
    _name = "categ.age"
    _description = "Group of age"
   
    name = fields.Char("Name")

Best regards!

Imagine profil
Abandonează

Can you point this to computing a fields value?

Cel mai bun răspuns

Hello,in your case the name_test is wrong defined.

you need remove attribute related for the computed method work.

related method is a computed method of odoo...

Imagine profil
Abandonează
Autor Cel mai bun răspuns

Thanks @Sylvain for replay, i tried the code and didn't work (the field still not changed) i think the code that you are suggesting will work if the name field be a selection field 

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
1
ian. 21
3427
1
dec. 20
3776
2
oct. 23
2260
1
mai 21
4636
1
ian. 21
5201