2012-02-24 17 views
1

我正在建立一個小型學習管理系統。它有課程,活動課程和活動迴應活動。這些對象之間的關係如下所示。它是一個很好的做法,做模型對象反向導航Django模板?

在視圖中我想以表格形式列出了課程,併爲活動所收到的所有響應的所有活動。如果我只給了課程目標,以我的模板,然後它會做當然從反向導航每項活動的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

將所有的知識對你的模型圖中你的觀點的結構。模板只能用於格式化。原因是模板很容易適應變化 - 如果你調整模型,你會恨自己,然後不得不改變你的所有模板。

+0

是的,我同意。我也正在考慮這些方面。順便說一句,僅僅爲了我的理解,是否可以在模板中對模型對象進行逆向導航(關係)? – Parag 2012-02-24 08:48:43

+0

@Parag:是的。 – Marcin 2012-02-24 10:50:24

相關問題