- main_app에 views.py를 아래와 같이 수정합니다.
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
import board_app.models
# Create your views here.
def index(request):
# board_info_table에 기본 데이터 저장
# 한번 수행 후 주석처리 해주세요~
# model1 = board_app.models.BoardInfoTable()
# model1.board_info_name = "자유게시판"
# model1.save()
# model2 = board_app.models.BoardInfoTable()
# model2.board_info_name = "유머게시판"
# model2.save()
# model3 = board_app.models.BoardInfoTable()
# model3.board_info_name = "정치게시판"
# model3.save()
# model4 = board_app.models.BoardInfoTable()
# model4.board_info_name = "스포츠게시판"
# model4.save()
render_data = {
}
template = loader.get_template('index.html')
return HttpResponse(template.render(render_data, request))
- 미들웨어 처리 절차
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'mini_project.middleware.TopMenuMiddleWare.TopMenuMiddleware'
]
- TopMenuMiddleware로 데이터 requset에 저장
- main_app에 views.py에서 처리
- top_menu.html에서 아래와 같이 처리
<ul class="navbar-nav">
{% for menu in request.menu_list %}
<li class="nav-item">
<a href="/board/board_main?board_info_idx={{menu.board_info_idx}}" class="nav-link">{{menu.board_info_name}}</a>
</li>
{% endfor %}
</ul>
- settings.py를 아래와 같이 수정합니다.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'mini_project', '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',
],
},
},
]