Это хорошая практика, чтобы сделать обратную навигацию для объектов модели в шаблоне Django? - PullRequest
1 голос
/ 24 февраля 2012

Я строю небольшую систему управления обучением. У этого есть курсы, действия для курсов и ответные действия для действий. Отношения между этими объектами, как показано ниже.

В представлении я хочу перечислить в табличной форме все действия для курса и все ответы, полученные для этого действия. Если бы я дал только объект курса своему шаблону, то ему пришлось бы осуществлять обратный переход от курса к действиям, а затем от каждого действия к 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()

1 Ответ

1 голос
/ 24 февраля 2012

Держите в своих взглядах все знания о структуре графа вашей модели. Шаблоны должны быть только для форматирования. Причина в том, что шаблоны легко приспосабливаются к изменениям - вы будете ненавидеть себя, если вы настроите свои модели, а затем придется изменить все ваши шаблоны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...