我們有一個Django DetailView,我們正在顯示一個對象(Site
)及其所有相關對象(Rooms
)。Django - 在模板中過濾RelatedManager _set
現在,在模板中,我們可以簡單地在RelatedManager集迭代:
{% for room in site.room_set.all %}
do stuff
{% endfor %}
然而,這樣做的問題是,這將拿起所有相關房間的網站 - 然而,我們需要通過另一個屬性(我們稱之爲year
)將此設置縮小一些 - 並且此屬性存儲在Django會話變量中。
目前,我們只是在視圖代碼中使用Room.objects.filter(site=some_site, year='2009')
,這很好。
我的問題更多來自好奇心 - 有沒有什麼辦法在模板中使用_set
,並仍然過濾或縮小集合?
您可以編寫一個自定義模型管理器來執行此操作,以便_set
只會返回當前年份的對象嗎?或者有其他方法嗎?
乾杯, 維克多