我将2个上下文变量{{ year_list }}
和{{ current_year }}
传递到django模板中。我正在遍历{{ year_list }}
并检查{{ current_year }}
中是否有{{ year_list }}
。
{% each_year in year_list %}
{% if each_year == current_year %}
<li class="active"><a href="{{ each_year }}">{{ each_year }}</a></li>
{% else %}
<li><a href="{{ each_year }}">{{ each_year }}</a></li>
{% endif %}
它似乎不起作用。列表项都没有class='active'
。但是当我在{{ each_year }}
{{ current_year }}
和{% each_year in year_list %}
时,它会打印正确的值
我实际上正在使用基于班级的视图YearArchiveView
,我希望有一个年份列表,并在当前年份点亮。
class SomeYearArchiveView(YearArchiveView):
queryset = Some.objects.all()
date_field = 'some_date'
make_object_list = True
def get_context_data(self, **kwargs):
context = super(SomeYearArchiveView, self).get_context_data(**kwargs)
context['year_list'] = [2010, 2011, 2012]
context['current_year'] = self.request.path.split("/")[2]
return context
我做错了什么?有更好的方法吗?
答案 0 :(得分:3)
在功能get_context_data
-
context['year_list'] = [2010, 2011, 2012]
context['current_year'] = self.request.path.split("/")[2]
year_list
值为integer
,而current_year
值为string
。这就是他们在模板中不匹配的原因。在您的代码中执行此操作 -
context['current_year'] = int(self.request.path.split("/")[2])
这应该有效