пожалуйста, какой правильный путь для этой простой модели?
У меня есть две модели: Тема и Отчет:
class User(UserMixin, Model):
__tablename__ = 'users'
id = Column(db.Integer, primary_key=True)
email = Column(db.String(60), unique=False, nullable=True)
...
reports = db.relationship('Report', backref='user', lazy='dynamic')
class Report(UserMixin, Model):
__tablename__ = 'reports'
...
created_at = Column(db.DateTime, default=dt.datetime.now)
user_id = Column(db.Integer, db.ForeignKey('users.id'))
и мне нужен список всех пользователей с датой последнего отчета.
Грязным способом является:
subjects = User.query.all()
for s in subjects:
report_date = Report.query.filter(Report.subject_id == s.id).order_by(Report.id.desc()).first()
print('Subject + Report', s.email, report_date)
Пожалуйста, как создать этот список чистым способом?
(например, объединение таблиц и запросов, временная таблица с идентификаторами субъектов + дата)последнего посещения, сохраните дату последнего посещения непосредственно в таблице Тема ...)
Спасибо.