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 %}
我有 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 %}