from gi.repository import Gtk

model = Gtk.ListStore(int)
for i in range(10):
    model.append((i,))
filt = Gtk.TreeModelFilter(child_model=model)

# How we have to do it now.
iter = filt.convert_iter_to_child_iter(filt[3].iter)
filt.get_model()[iter][0] = 10


# Consider the case you don't know how deep your parent model is burried under
# all those filters.
for i in range(10): # 10 is a random number decided by roll of a die :D
    filt = Gtk.TreeModelFilter(child_model=filt)
# Now in case you want to change a value, you have to go up all the filters.
iter = filt.convert_iter_to_child_iter(filt[3].iter)
parent = filt.get_model()
while isinstance(parent, Gtk.TreeModelFilter):
    iter = parent.convert_iter_to_child_iter(iter)
    parent = parent.get_model()
parent[iter][0] = 10

# Raises an Exception, this is reasonable API given you can access rows and
# columns through filter correctly. My patch makes it possible.
filt[3][0] = 10
