diff --git a/database/database_table.py b/database/database_table.py index ed495b6c8ba6a17ee6bd069d637b24d0a93cd0c7..db3555f990ef68f10c874c4c4253c0595df989b1 100644 --- a/database/database_table.py +++ b/database/database_table.py @@ -787,10 +787,10 @@ class DatabaseTable(Table): # This variable has been evaluated already, just return return self._derivatives[target] - if target is not None and target in recursion_list: + if target is not None and str(self) + '.' + target in recursion_list: # This is a circular reference. Don't be like that. print(target) - raise CircularReferenceError + raise CircularReferenceError(target) original = self._protocol.original_from_target(target, year) or original try: @@ -826,7 +826,7 @@ class DatabaseTable(Table): str_list = re.findall(r'("[\w]+"|[\w]+)', original) level = 0 substitutions = [] - recursion_list.append(target) + recursion_list.append(str(self) + '.' + target) for substring in str_list: derivative = self._derivative_recursion(substring.strip('"'), year, recursion_list=recursion_list)