Django - 将可迭代数据从 2 个相关模型传递到模板

Django - Passing iteratable data from 2 related models to template

我有 2 个模型是这样的,

class OnlineTest(models.Model):
    name = models.CharField(max_length=50)
    questions = models.ManyToManyField(Question)

class OnlineTestProgress(models.Model):
    examinee = models.ForeignKey(MSchoolMateUser)
    quiz = models.ForeignKey(OnlineTest)
    complete = models.BooleanField(default=False, blank=False)

在我的模板中,我想向用户显示所有测试及其状态。因此,如果 OnlineTestProgress 模型中的测试状态为 COMPLETE,它将是绿色行,如果未被接受,它将是红色行。

这需要我迭代 2 个模型,但我无法做到这一点。

对于 m 个测试和 n 个用户,OnlineTestProgress 模型将有 m.n 个条目,而 OnlineTest 模型将有 m 个条目。

我考虑过在 OnlineTest 模型中编写一个函数,但不确定它是否是正确的方法。

感谢您的宝贵时间。非常感谢您的帮助。

为什么需要迭代两个模型?看来您只需要遍历 OnlineTestProgress?

如果 OnlineTestProgress 只进行了测试,则只需在后端添加所有不在 OnlineTestProgress 中的测试

或者只是遍历 OnlineTest 并通过将 OnlineTestProgress 中的所有 OnlineTest 作为名为 taken_list 的列表传递并检查是否每个都在 OnlineTestProgress 中并执行

{% for test in OnlineTest %}

    {% if test in taken_list %} [make the row green] {% endif %}

{% endfor %}