Я строю небольшую систему управления обучением. У этого есть курсы, действия для курсов и ответные действия для действий. Отношения между этими объектами, как показано ниже.
В представлении я хочу перечислить в табличной форме все действия для курса и все ответы, полученные для этого действия. Если бы я дал только объект курса своему шаблону, то ему пришлось бы осуществлять обратный переход от курса к действиям, а затем от каждого действия к ActivityResponse.
Мой вопрос: как правильно ориентироваться в таких отношениях? Возможна ли / рекомендована ли обратная навигация по шаблонам или я должен передать соответствующие подсказки из представления в шаблон, чтобы он мог просто перебирать все объекты и отображать данные.
class Course(models.Model):
users = models.ManyToManyField(User, null=True, blank=True)
title = models.CharField(max_length=128)
contents = models.TextField()
start_date = models.DateField()
end_date = models.DateField()
class Activity(models.Model):
course = models.ForeignKey(Course)
placement = models.IntegerField()
title = models.CharField(max_length=128)
contents = models.TextField()
class ActivityResponse(models.Model):
user = models.ForeignKey(User)
activity = models.ForeignKey(Activity)
when = models.DateTimeField(default=datetime.datetime.now)
contents = models.TextField()