2828
2929if t .TYPE_CHECKING : # pragma: no cover
3030 from piccolo .table import Table
31+ from piccolo .columns .base import ColumnMeta
3132
3233
3334###############################################################################
@@ -1109,7 +1110,11 @@ def __getattribute__(self, name: str):
11091110 if len (new_column ._meta .call_chain ) >= 10 :
11101111 raise Exception ("Call chain too long!" )
11111112
1112- for proxy_column in self ._foreign_key_meta .proxy_columns :
1113+ foreign_key_meta : ForeignKeyMeta = object .__getattribute__ (
1114+ self , "_foreign_key_meta"
1115+ )
1116+
1117+ for proxy_column in foreign_key_meta .proxy_columns :
11131118 try :
11141119 delattr (new_column , proxy_column ._meta .name )
11151120 except Exception :
@@ -1126,12 +1131,15 @@ def __getattribute__(self, name: str):
11261131 if _column ._meta .name == "id" :
11271132 continue
11281133 setattr (new_column , _column ._meta .name , _column )
1129- self . _foreign_key_meta .proxy_columns .append (_column )
1134+ foreign_key_meta .proxy_columns .append (_column )
11301135
11311136 return new_column
11321137 elif issubclass (type (value ), Column ):
11331138 new_column = value .copy ()
1134- new_column ._meta .call_chain = self ._meta .call_chain .copy ()
1139+
1140+ column_meta : ColumnMeta = object .__getattribute__ (self , "_meta" )
1141+
1142+ new_column ._meta .call_chain = column_meta .call_chain .copy ()
11351143 new_column ._meta .call_chain .append (self )
11361144 return new_column
11371145 else :
0 commit comments