Maybe you are confused on "when" the attr invisible is going to be executed; you have to have in mind that when the condition is True, then the field WILL BE invisible, that said.... when creating a new employee that field is invisible because 'parent_id' has not retrieve any value from anywhere, to avoid this scenario then you should put 'parent_id' with a True default value.... then after saving the employee, you check the new employee record info and you did not introduce a value on 'parent_id' field, then the value is null which will cause the field to be invisible, because the condition ('parent_id ', '=', False) will be returning TRUE.