2012-02-24 2 views
1

저는 작은 학습 관리 시스템을 구축하고 있습니다. 그것은 코스, 코스에 대한 활동 및 활동에 대한 활동 응답을 가지고 있습니다. 이러한 개체 간의 관계는 다음과 같습니다.장고 템플릿의 모델 객체에 대한 역방향 탐색을 수행하는 것이 좋습니다.

보기에서 나는 코스에 대한 모든 활동과 그 활동에 대해받은 모든 응답을 표 형식으로 나열하고자합니다. 템플릿에 코스 오브젝트 만 주면 코스에서 활동으로, 그리고 각 활동에서 ActivityResponse로 역방향 탐색을 수행해야합니다.

내 질문에 이러한 관계를 탐색하는 올바른 방법은 무엇입니까? 역방향 탐색은 템플릿에서 가능하거나 권장 할 수 있습니다. 또는 뷰에서 템플릿으로 적절한 dict을 전달해야하므로 모든 객체와 데이터를 반복 할 수 있습니다.

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

귀하의보기에 모델 그래프의 구조에 대한 모든 지식을 보유하십시오. 서식 파일은 서식을 지정하기위한 것이어야합니다. 그 이유는 템플릿이 변화에 적응하기가 쉽지 않기 때문입니다. 모델을 조정할 경우 자신이 싫어하고 템플릿을 모두 변경해야합니다.

+0

예 동의합니다. 나는 그 라인을 따라 생각하고 있었다. BTW, 단지 내 이해를 위해 템플릿에서 모델 객체의 역방향 탐색 (관계)을 수행 할 수 있습니까? – Parag

+0

@Parag : 예, 그렇습니다. – Marcin

관련 문제