Django - 在模板中过滤RelatedManager _set?

vic*_*ooi 5 django templates filter

我们有一个Django DetailView,我们在其中显示一个object(Site)及其所有相关对象(Rooms).

现在,在模板中,我们可以简单地遍历Rel​​atedManager集:

{% for room in site.room_set.all %}
    do stuff
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

然而,问题在于这会将所有相关的房间带到一个站点 - 但是,我们需要通过另一个属性(让我们称之为year)稍微缩小这个设置- 并且该属性存储在Django会话变量中.

目前,我们只是Room.objects.filter(site=some_site, year='2009')在视图代码中使用,这很好.

我的问题更多来自好奇心 - 有没有办法_set在模板中使用,还是过滤或缩小集合?

您是否可以编写自定义模型管理器来执行此操作,以便_set只返回当前年份的对象?或者还有其他方式吗?

干杯,维克多