依靠相关模型作为混合属性

时间:2019-01-13 10:41:51

标签: mysql sqlalchemy flask-sqlalchemy

我有一个名为SectionAttempt的表,其中有许多QuestionAttempts

我想显示一个计算字段'total_count',该字段是SectionAttempt的问题尝试次数,而无需加载所有questionAttempts。

Looking online,我发现了这一点:

select([func.count()],
QuestionAttempt.__table__.c.section_attempt_id==SectionAttempt.__table__.c.id)
.correlate(SectionAttempt.__table__)
.as_scalar()

我不是100%知道为什么会这样,但是当我这样查询时它就起作用了:

 test_attempt = (SOMEQUERY
                .undefer(SectionAttempt.question_attempt_total_count)).one())

我有问题:

  1. .correlate在这里做什么。
  2. 将其添加到模型的方式使我不得不导入我的QuestionAttempt模型,这容易出现周期性的导入问题(如果我必须对QuestionAttempt模型进行类似的操作,该怎么办)。 我如何保留功能,但要么更改为基于字符串的引用(就像我们对关系所做的那样),要么更改为在函数内部(以便可以在函数内部而不是全局导入“问题尝试”)

0 个答案:

没有答案