我们有一个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
只会返回当前年份的对象吗?或者有其他方法吗?
干杯, 维克多