Если вы хотите передать контекст в базовый шаблон, это похоже на задание для процессора контекста ...
- В каталоге приложения создайте файл
context_processors.py
. В нем добавьте свою переменную в контекст ... что-то вроде:
from yourapp.models import Sections
def sections_to_base(request):
sections = Sections.objects.all()
return {'sections': sections}
Добавьте путь к процессору в настройках вашего проекта. Например:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join( BASE_DIR, 'templates' )],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'myapp.context_processors.sections_to_base', # <-- this
],
},
},
]
В
base.html
, так же, как вы интерполировали:
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
{% for sec in sections %}
<a class="dropdown-item" href="#">{{sec.section_name}}</a>
{% endfor %}
</div>