Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
2 ตอบกลับ
14377 มุมมอง

Hello,

I am trying to populate a Selection field in v8 with values from a function when an onchange event is triggered.

When I print the output it looks fine, but then my selection field is empty and I am not getting any errors.

This is what my code looks like

The field:

myfield = fields.Selection(selection='_get_selection', string='What do you want ?') 


The function onchange


	@api.onchange('building')
def _get_selection(self):
choise = []
ret_ids = self.env['sim.mymod'].search([['cols', '=', self.building.id],])
for amen_id in ret_ids:
                                amenity_obj = self.env['sim.mymod'].browse(amen_id.id)
print amenity_obj.id
print amenity_obj.name
choise.append((amenity_obj.id), str(amenity_obj.name))
                                print choise  
return choise




This prints the following output in the console:

[[3, 'A'], [4, 'B']]

which is exactly what I need, but my field shows nothing.

Any idea will be deeply appreciated.

Thanks a lot!

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hi,

Just make you function as like below.

	@api.onchange('building')
def _get_selection(self):
choise = []
ret_ids = self.env['sim.mymod'].search([['cols', '=', self.building.id],])
for amen_id in ret_ids:
                                amenity_obj = self.env['sim.mymod'].browse(amen_id.id)
print amenity_obj.id
print amenity_obj.name
choise.append(str(amenity_obj.id), str(amenity_obj.name))
                                print choise  
return choise

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

maybe u can't get the value from onchange method because is not executed yet, onchange event come from view and the model consume ur _get_selection function before execute onchange method 

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
1
เม.ย. 15
6739
1
มี.ค. 21
8198
How to show field if selected แก้ไขแล้ว
1
มี.ค. 21
4066
2
ธ.ค. 17
16827
0
เม.ย. 15
3884