From bcc8e3ccfd2b88f8c76f663e8d93636d5b3c33c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Victor=20Frans=20Pondaco=20Winandy?=
 <jvfpw18@inf.ufpr.br>
Date: Mon, 10 Jun 2019 08:10:16 -0300
Subject: [PATCH] _aggregate accepts foreign_key from the called table as a
 clause

---
 database/database_table.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/database/database_table.py b/database/database_table.py
index 64ef5ee..2810be1 100644
--- a/database/database_table.py
+++ b/database/database_table.py
@@ -881,7 +881,12 @@ class DatabaseTable(Table):
         referred_table.map_from_database()
         selecter = select([getattr(func, aggregation)(source_column)])
 
-        for fk_column, fkey in referred_table.get_relations(self):
+        try:
+            fk_dict = [(fk_column, fkey) for fk_column, fkey in referred_table.get_relations(self)]
+        except MissingForeignKeyError:
+            fk_dict = [(fk_column, fkey) for fk_column, fkey in self.get_relations(referred_table)]
+
+        for fk_column, fkey in fk_dict:
             selecter = selecter.where(fk_column == fkey)
         if year:
             selecter = selecter.where(self.c.ano_censo == year)
-- 
GitLab