我試着對模板這樣訪問相關模型:獲得一個濾波結果的計數在模板上的Django
的問題是,我想指望它有所有學生的幽會active = True
屬性。
我希望能夠做這樣的事情:
course.course_set.all.0.section_set.all.0.student_assignation(active=True).count
我怎樣才能做到這一點在Django的模板?
我試着對模板這樣訪問相關模型:獲得一個濾波結果的計數在模板上的Django
的問題是,我想指望它有所有學生的幽會active = True
屬性。
我希望能夠做這樣的事情:
course.course_set.all.0.section_set.all.0.student_assignation(active=True).count
我怎樣才能做到這一點在Django的模板?
Django模板是針對如此複雜的查詢而設計的。 有可以處理這個
其中的一些方法,創建自定義django template tag
二,創建一個類的方法,這將提供此信息。
例
class Course:
...
def sutdent_assign_count(self):
#Your query goes here..
你必須在模板太多的邏輯。在其中一個模型類上創建一個實際返回所需數字的方法;我會提出一個,但是你現在做的太不清楚了(爲什麼選擇.all.0
,其他結果不重要?爲什麼選擇course.course_set,這對自己來說是多對多的?)。你的模特喜歡什麼?
你會如何描述你在英文中顯示的內容?這可能會提示您應該創建什麼樣的方法。
創建一個自定義模板過濾器來添加'.filter(active = true)'也應該有效。 – Tim
當然,但這會導致邏輯分離和更多錯誤代碼,除非這是重複模式 – karthikr
另一種選擇是在自定義管理器上使用all_active()方法。但我認爲我們需要更多地瞭解他想要做的事情。 – RemcoGerlich