我正在构建一个django Web应用程序。一个区域有很多点,关系保存在点内(点模型的区域有一个外键)。
网络应用程序有一个每个区域的页面,并显示点列表。该区域由网址决定。我的视图从url.py解析kwargs并过滤所有区域对象的列表:
class PointView(ListView):
model = Point
template_name = 'point_list_template.html'
def get_queryset(self):
area_title = self.kwargs['area_title']
return Point.objects.filter(area__title = area_title)
工作得很好,页面列出了属于所需区域的所有点。现在我想列出页面底部的所有其他区域,除了我现在正在显示的区域。显然
{% for area in Area.objects.all %}
只给我一个我正在显示的区域(由网址确定的区域)。如何访问模板中的所有区域对象或从视图中传递列表?
答案 0 :(得分:3)
您需要自己将它们添加到上下文中。覆盖get_context_data
是最佳选择:
def get_context_data(self, **kwargs):
context = super(PointView, self).get_context_data(**kwargs)
context['all_areas'] = Area.objects.exclude(title=self.kwargs['area_title'])
return context
现在使用all_areas
访问模板中的内容。