I have a wizard model, where user can choose a car from another model(named 'techdoc' with fields car brand, model, year etc).
In first selection field user chooses car brand, and in second selection user chooses car model, depends on the selected first field.
But the second field value does not displays computed values to choose after setting the second field value.
Is there any method to make it work properly?
class Roll_wizard(models.TransientModel):
_name = 'roll.wizard'
@api.multi
def get_car_brand(self):
brand = []
result = self.env['techdoc'].search([('name', '!=', "")])
for record in result:
tup=(record.name.lower(), record.name.title())
brand.append(tup)
brand = list(set(brand))
return sorted(brand)
@property
def ret_value(self):
return self.car_brand
@api.onchange("car_brand")
def get_car_model(self):
model = []
result = self.env['techdoc'].search([('name', '=', self.ret_value)])
for record in result:
tup=(record.car_model, record.car_model.title())
model.append(tup)
model = list(set(model))
return sorted(model)
car_brand = fields.Selection(get_car_brand, string="Car Brand")
car_model = fields.Selection(get_car_model, string="Car Model")
If I'll print in console the result of returned value's of get_car_model:
print result
print model
techdoc(18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
[(u'fiesta', u'Fiesta'), (u'focus', u'Focus'), (u'fusion', u'Fusion')]
So we can see, server returns the right value, but the selection field is not updated dynamically.