Я пытаюсь построить функцию класса пользователя с запросом SQLAlchemy, который позволяет мне подсчитывать записи пользователя в разных таблицах (на основе его идентификатора). Чтобы избежать множественного кодирования функций, я попытался определить универсальную функцию, где я получаю класс db.modell в качестве параметра от вызова Jinja2, например:
{{ current_user.count('Customer') }}
или
{{ current_user.count('Player') }}
Но я в итоге ошибаюсь, что Python не интерпретирует данный параметр class_name как реальный класс. Он жалуется, что class_name не имеет идентификатора функции.
Конечно, я мог бы указать конкретные пользовательские функции с определенным запросом для каждого класса, но я старался избегать этих дублирующих кодировок.
Есть идеи, как с этим бороться?
class User(db.Model):
__tablename__='user'
id = Column(Integer, primary_key=True)
def count(self, class_name):
s = db.session()
count = s.query(class_name).filter(class_name.id == self.id).count()
return count
class Player(db.Model):
__tablename__='player'
id = Column(Integer, primary_key=True)
class Customer(db.Model):
__tablename__='Customer'
id = Column(Integer, primary_key=True)
Заранее спасибо
Michael