How to resolve the error :RecursionError: maximum recursion depth exceeded while calling a Python object

The code I have done is followed below:
reference =fields.Function(fields.Char("Reference"), 'on_change_reference')

    @fields.depends('reference','Product','Area','position')
    def on_change_reference(self):
        val_1 = self.Product
        if(val_1 == "W"):
            val_1 ="WR"
        if(val_1 == "T"):
            val_1 ="TG"
        else:
            if(val_1 == "A/T"):
               val_1 ="AT"
        val_2 = self.Area
        val_3 = self.position.Code
        value_refer = val_1+val_2+val_3
        return value_refer

On executing the above code error is showing:

    Traceback (most recent call last):    
     File "/trytond/wsgi.py", line 104, in dispatch_request
    return endpoint(request, **request.view_args)
      File "/trytond/protocols/dispatcher.py", line 48, in rpc
    request, database_name, *request.rpc_params)
      File "/trytond/wsgi.py", line 72, in auth_required
    return wrapped(*args, **kwargs)
      File "/trytond/protocols/wrappers.py", line 131, in wrapper
    return func(request, pool, *args, **kwargs)
      File "/trytond/protocols/dispatcher.py", line 197, in _dispatch
    result = rpc.result(meth(*c_args, **c_kwargs))
      File "/trytond/model/modelsql.py", line 832, in read
    getter_results = field.get(ids, cls, field_list, values=result  
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 106, in get
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 106, in <genexpr>
        return dict((name, call(name)) for name in names)
      File "/trytond/model/fields/function.py", line 101, in call
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/fields/function.py", line 101, in <genexpr>
        return dict((r.id, method(r, name)) for r in records)
      File "/trytond/model/modelview.py", line 89, in wrapper
        result = func(self, *args, **kwargs)
      File "/trytond/model/fields/field.py", line 116, in wrapper
        _set_value(self, field)
      File "/trytond/model/fields/field.py", line 91, in _set_value
        if not hasattr(record, field):
      File "/trytond/model/fields/field.py", line 332, in __get__
        return inst.__getattr__(self.name)
      File "/trytond/model/modelstorage.py", line 1525, in __getattr__
        read_data = self.read(list(ids), list(ffields.keys()))
      File "/trytond/model/modelsql.py", line 832, in read
        getter_results = field.get(ids, cls, field_list, values=result)
      File "/trytond/model/fields/function.py", line 93, in get
        signature = inspect.signature(method)
      File "/inspect.py", line 3083, in signature
        return Signature.from_callable(obj, follow_wrapped=follow_wrapped)
      File "/inspect.py", line 2833, in from_callable
        follow_wrapper_chains=follow_wrapped)
      File "/inspect.py", line 2284, in _signature_from_callable
        return _signature_from_function(sigcls, obj)
      File "/inspect.py", line 2154, in _signature_from_function
        kind=_POSITIONAL_OR_KEYWORD))
      File "/inspect.py", line 2469, in __init__
        self._kind = _ParameterKind(kind)
      File "/enum.py", line 310, in __call__
        return cls.__new__(cls, value)
      File "/enum.py", line 530, in __new__
        if type(value) is cls:
    RecursionError: maximum recursion depth exceeded while calling a Python object

It seems you have a function field which depends on another function field which depends on the first function field. So this makes an infinite loop because it is not possible to compute the second field without the first.