Есть base-tamplate, содержащий меню, где
menu - объект, содержащий все записи модели Menu:
<ul class="nav justify-content-center nav-pills">
{% for item in menu %}
<li class="nav-item">
<a class="nav-link" id="{{ item.item_id }}" href="{{ item.link }}" title="{{ item.title }}">{{ item.item }}</a>
</li>
{% endfor %}
</ul>
от него наследуются все остальные темплейты.
Соответственно, чтобы отображать это меню на всех страницах, нужно передавать объект
menu во все View, например:
class ArticleDetailView(DetailView):
model = Article
def get_context_data(self, **kwargs):
context = super(ArticleDetailView, self).get_context_data(**kwargs)
context['menu'] = MenuItems.objects.all()
return context
или
def about(request):
menu = MenuItems.objects.all()
return render(request, 'blog/about.html', {'menu':menu,})
Как-то это вообще не очень, я точно помню, когда изучал django что-то читал про наследование объекта из base-темплейта на все дочерние, но никак не могу найти и освежить знания.