홈페이지 및 기타 페이지 연결을 위한 사이트 메뉴 설정¶
이 튜토리얼 섹션에서는 홈페이지 및 추가할 다른 페이지에 연결하기 위한 사이트 메뉴를 만드는 방법을 배웁니다. 사이트 메뉴는 바닥글처럼 포트폴리오 웹사이트의 모든 페이지에 나타납니다.
base/templatetags/navigation_tags.py 파일에 템플릿 태그를 생성하여 시작합니다:
from django import template
# site 가져오기:
from wagtail.models import Site
from base.models import FooterText
register = template.Library()
# ... get_footer_text 정의를 유지하고 get_site_root 템플릿 태그를 추가합니다:
@register.simple_tag(takes_context=True)
def get_site_root(context):
return Site.find_for_request(context["request"]).root_page
이전 코드에서 get_site_root 템플릿 태그를 생성하여 사이트의 루트 페이지(이 경우 HomePage)를 검색했습니다.
이제 mysite/templates/includes/header.html 파일을 생성하고 다음을 추가합니다:
{% load wagtailcore_tags navigation_tags %}
<header>
{% get_site_root as site_root %}
<nav>
<p>
<a href="{% pageurl site_root %}">홈</a> |
{% for menuitem in site_root.get_children.live.in_menu %}
<a href="{% pageurl menuitem %}">{{ menuitem.title }}</a>
{% endfor %}
</p>
</nav>
</header>
이전 템플릿에서 wagtailcore_tags 와 navigation_tags 를 로드했습니다.
이러한 태그를 사용하여 Wagtail 프로젝트의 탐색 메뉴를 생성할 수 있습니다.
{% get_site_root as site_root %} 는 HomePage 를 검색하여 site_root 변수에 할당합니다.
<a href="{% pageurl site_root %}">홈</a> | 은 site_root 를 인수로 사용하여 pageurl 템플릿 태그를 사용하여 HomePage 에 대한 링크를 생성합니다. 홈이라는 레이블과 메뉴 항목을 구분하는 파이프 기호 | 가 있는 HomePage 에 대한 링크를 생성합니다.
{% for menuitem in site_root.get_children.live.in_menu %} 는 라이브 상태이고 메뉴에 포함된 HomePage 의 자식 페이지를 반복하는 루프입니다.
마지막으로 mysite/templates/base.html 파일을 수정하여 header 템플릿을 base 템플릿에 추가합니다:
<body class="{% block body_class %}{% endblock %}">
{% wagtailuserbar %}
{# header 템플릿을 base 템플릿에 추가합니다: #}
{% include "includes/header.html" %}
{% block content %}{% endblock %}
{% include "includes/footer.html" %}
{# 전역 자바스크립트 #}
<script type="text/javascript" src="{% static 'js/mysite.js' %}"></script>
{% block extra_js %}
{# 추가 자바스크립트를 추가하려면 템플릿에서 이것을 재정의하십시오 #}
{% endblock %}
</body>
이제 서버를 다시 시작하고 홈페이지를 다시 로드하면 홈으로 레이블이 지정된 홈페이지 링크가 있는 사이트 메뉴가 표시됩니다.