Django Pass Multiple Models to one Template

I ended up modifying @thikonom ‘s answer to use class-based views:

class IndexView(ListView):
    context_object_name="home_list"    
    template_name="contacts/index.html"
    queryset = Individual.objects.all()

    def get_context_data(self, **kwargs):
        context = super(IndexView, self).get_context_data(**kwargs)
        context['roles'] = Role.objects.all()
        context['venue_list'] = Venue.objects.all()
        context['festival_list'] = Festival.objects.all()
        # And so on for more models
        return context

and in my urls.py

url(r'^$', 
    IndexView.as_view(),
    name="home_list"
        ),

Leave a Comment