Dynamic Selection field

I am trying to create a dynamic selection field here. The idea can be explained with the help of given code example -

Model A - 
name = fields.Char('Name')
option_yes = fields.Char('If it is okay')
option_no = fields.Char('If it is not okay')


Model B - 
field_a = fields.Many2One(Model A, 'A')
state = fields.Selection([
    ('yes', <Value in option_yes>)
    ('no', <Value in option_no>)

])

I tried writing something like this for field ‘state’:

@fields.depends('field_a')
def get_selection(self):
    list_ = [('', '')]
    if self.field_a:
        list_ = [
            ('', ''),
            ('y', self.field_a.option_y),
            ('n', self.field_a.option_n),
        ]
    return list_

and changed the field definition to -

state = fields.Selection(‘get_selection’, ‘State’, depends=[‘field_a’])

I am getting the following error on client-

ERROR:tryton.common.common: File “/home/prakhar/tryton/init.py”, line 49, in callback
return func(*args)
File “/home/prakhar/tryton/gui/window/view_form/view/list_gtk/widget.py”, line 57, in wrapper
return func(self, *args, **kwargs)
File “/home/prakhar/tryton/gui/window/view_form/view/list_gtk/widget.py”, line 102, in wrapper
func(self, column, cell, store, iter)
File “/home/prakhar/tryton/gui/window/view_form/view/list_gtk/widget.py”, line 200, in setter
text = self.get_textual_value(record)
File “/home/prakhar/tryton/gui/window/view_form/view/list_gtk/widget.py”, line 812, in get_textual_value
self.update_selection(record, field)
File “/home/prakhar/tryton/common/selection.py”, line 57, in update_selection
self.init_selection(value)
File “/home/prakhar/tryton/common/selection.py”, line 44, in init_selection
selection.sort(key=operator.itemgetter(1))

‘<’ not supported between instances of ‘NoneType’ and ‘str’

Can someone tell me what I am doing wrong here? And what will be the better way to do it.

It looks like some of your second item of listed couples are None which is not allowed (only strings).